DATEDIFF(string enddate, string startdate)

返回从 startdateenddate 的天数。

如查询从 2022-08-01 到 2022-08-16 的天数:

1
2
-- 该查询返回结果为 15
SELECT DATEDIFF('2022-08-16','2022-08-01');

使用示例

一个常见的例子是计算用户未活跃时长(天),该指标的定义:用户最后一次登录时间距离某天(一般是昨日)的天数。

1
2
3
4
-- 参数dt:20220815
SELECT user_id,
DATEDIFF(FROM_UNIXTIME(UNIX_tIMESTAMP('${dt}','yyyyMMdd')), last_login_time)
FROM mydw.dwd_user

输出示例:

1
2
3
4
5
6
+------------+-----------+
| user_id | _c1 |
+------------+-----------+
| 1595225121 | 1 |
| 1595224632 | 3 |
+------------+-----------+

(END)