SQL 的日期比较¶
SQL 中无法直接使用减运算比较时间,这会导致时间/日期先转换成整数再相减,
比如 2019-11-01
和 2019-10-31
的计算结果是 70
使用函数计算¶
使用 SQL 计算时间数据时一般会使用两个函数
DATEDIFF¶
SELECT DATEDIFF('2019-11-01', '2019-10-31') AS diff;
DATEDIFF() 函数接受两个参数,前者为被减数,后者为减数,因此上面的 SQL 的运行结果是:
{"headers": ["diff"], "values": [[1]]}
TIMESTAMPDIFF¶
SELECT TIMESTAMPDIFF(unit, start_datetime, end_datetime) AS diff;
TIMESTAMPDIFF() 函数接受三个参数,unit 为时间单位:
SECOND、MINUTE、HOUR、DAY、MONTH、YEAR
需要注意的是,TIMESTAMPDIFF() 的计算方向和 DATEDIFF() 是相反的,即第二个参数为减数,第三个参数为被减数