You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Data Studio日期维度过滤 如何用>=/<=写CASE语句统计指定日期前用户数

问题原因

你当前的写法存在两个核心问题:

  • 你给出的样例日期格式为日/月/年(如31/01/2021),如果DOJ字段是字符串类型,直接调用FORMAT_DATETIME函数无法正确解析非标准日期格式的字符串,会导致判断逻辑全部失效
  • 日期转数字再比较的写法冗余,而且容易因为格式转换出错,直接用原生日期类型比较更稳妥
正确实现

场景1:DOJ为字符串类型(存储格式DD/MM/YYYY)

先将字符串解析为标准日期类型再做判断,统计语句如下:

SELECT COUNT(*) AS 入职符合条件的用户数
FROM 你的表名
WHERE PARSE_DATE('%d/%m/%Y', DOJ) <= '2021-01-30'

不同SQL引擎的字符串转日期函数可能有差异,比如MySQL对应STR_TO_DATE(DOJ, '%d/%m/%Y'),SQL Server对应CONVERT(DATE, DOJ, 103),根据你用的引擎调整即可。

如果你需要保留创建计算字段再聚合的逻辑,计算字段写法调整为:

CASE WHEN PARSE_DATE('%d/%m/%Y', DOJ) <= '2021-01-30' THEN 1 END

对该字段执行COUNT聚合即可得到正确结果。

场景2:DOJ已经是日期类型

直接做日期比较即可,不需要做格式转换:

SELECT COUNT(*) AS 入职符合条件的用户数
FROM 你的表名
WHERE DOJ <= '2021-01-30'
样例验证

你给出的测试数据中,2021年1月30日及之前入职的员工共5人,最终统计结果为5。

内容的提问来源于stack exchange,提问作者Kartik Merchant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 11:15:01