正确操作是点击列标题最右侧小三角图标(▼)触发过滤;“过滤”适用于简单条件,“自定义过滤”需手动加引号写复合SQL表达式;日期数值范围筛选须用完整格式或自定义过滤确保精度;过滤失效时需检查“全选字段”是否启用。

点列标题右侧箭头,不是点列名本身
很多人第一次找列过滤入口时,会直接点击列名文字(比如“status”或“created_time”),结果什么也没弹出来。正确操作是:把鼠标移到列标题的**最右侧空白处**,看到那个小三角图标(▼)再点。这个区域很窄,位置偏右,容易误判。DBeaver 的 UI 逻辑里,列名文字区域只响应排序,过滤触发区严格限定在箭头图标及其紧邻右侧几个像素内。
下拉菜单里“过滤”和“自定义过滤”不是一回事
点开箭头后,菜单项有“过滤”“自定义过滤”“排序”等。这里容易混淆:
-
过滤:适用于简单条件,比如“等于”'active'、“包含”'error'、“大于”100,支持单值或多值(按 Ctrl 或 Cmd 多选) -
自定义过滤:打开的是完整表达式编辑器,能写status != 'draft' AND created_time > '2026-01-01'这类复合条件,但注意——它不自动加引号,字符串必须手动补',否则报错SQL Error: Column not found
如果你只是想筛出几条固定 ID,用“过滤”更快;要跨字段联动判断,才进“自定义过滤”。
数值和日期列的范围筛选,别信默认提示
对数字或日期列点“过滤”,下拉里常出现“范围…”选项,点开后弹出两个输入框。但这里有个坑:DBeaver 不会自动识别字段类型做格式校验。比如 updated_at 是 TIMESTAMP,你输 2026-11-01,它可能按字符串比对,导致 2026-11-01 14:30:00 被漏掉。稳妥做法是:
- 日期列:统一用带时间的完整格式,如
'2026-11-01 00:00:00'到'2026-11-01 23:59:59' - 数值列:确认数据库实际精度,
DECIMAL(10,2)类型输99.99没问题,但输99.999可能被截断或报错 - 不确定时,先用“自定义过滤”写
updated_at >= TIMESTAMP '2026-11-01',更可控
过滤后看不到数据?先检查“全选字段”是否被意外取消
在数据比较结果视图或某些表编辑模式下,列过滤面板顶部有个“全选字段”复选框。如果之前勾选过它,后来手动取消了某几列,再点列头过滤时,DBeaver 会**只对已勾选的列生效**——也就是说,你点了“id”列的过滤,但“id”没在字段勾选列表里,过滤就静默失效。这种状态没有视觉提示,只会显示“无结果”。解决方法很简单:打开过滤面板,确认“全选字段”已勾选,或者至少确保你要操作的列名前的方框是打钩状态。











