目录
- [1. DATEDIFF函数](#1. DATEDIFF函数)
- [2. TIMESTAMPDIFF函数](#2. TIMESTAMPDIFF函数)
- [3. PERIOD_DIFF函数](#3. PERIOD_DIFF函数)
- [4. 函数对比](#4. 函数对比)
在MySQL 5.7中,计算两个日期之间的间隔天数是一项常见的任务。
1. DATEDIFF函数
DATEDIFF
函数可以直接计算两个日期之间的天数差异。
sql
-- 计算2024年1月1日和2024年1月10日之间的天数差异
SELECT DATEDIFF('2024-01-10', '2024-01-01') AS days_difference; # 结果 9,表示两个日期之间相差9天。
2. TIMESTAMPDIFF函数
TIMESTAMPDIFF
函数允许你指定日期和时间单位来计算差异,这里我们使用DAY
作为单位。
sql
-- 计算2024年1月1日和2024年1月10日之间的天数差异
SELECT TIMESTAMPDIFF(DAY, '2024-01-01', '2024-01-10') AS days_difference; # 结果 9
3. PERIOD_DIFF函数
PERIOD_DIFF
函数专门用于计算两个日期之间的月份差异。
sql
-- 计算2024年1月和2024年12月之间的月份差异
SELECT PERIOD_DIFF(202412, 202401) AS months_difference; # 结果 -11
表示从2024年1月到2024年12月相差11个月(注意结果是负数,因为第二个日期在第一个日期之后)。
4. 函数对比
下面是一个表格,对比了DATEDIFF
、TIMESTAMPDIFF
和PERIOD_DIFF
这三个函数的区别:
函数 | 用途 | 单位/参数 | 返回值类型 |
---|---|---|---|
DATEDIFF | 计算两个日期之间的天数差异 | 无 | 天数 |
TIMESTAMPDIFF | 计算两个日期/时间之间的差异,可以指定单位(如天、月、年) | 有 | 指定单位 |
PERIOD_DIFF | 计算两个日期之间的月份差异 | 有 | 月份 |