MySQL DATEDIFF() 函数使用指南
MySQL DATEDIFF()
函数返回两个日期值之间的天数。
DATEDIFF()
语法
这是 MySQL DATEDIFF()
函数的语法:
DATEDIFF(date1, date2)
参数
date1
- 必需的。一个日期或者日期时间表达式。
date2
- 必需的。一个日期或者日期时间表达式。
返回值
MySQL DATEDIFF()
函数返回两个日期值之间的天数。DATEDIFF()
函数只比较 date1
和 date2
的日期部分。如果 date1
的日期晚于 date2
的日期,它返回一个正数,否则返回一个负数或者 0。
如果指定的表达式不是一个合法的日期或者日期时间,DATEDIFF()
函数将返回 NULL
。
如果参数为 NULL
,DATEDIFF()
函数将返回 NULL
。
DATEDIFF()
示例
这里是几个 DATEDIFF()
函数的示例。
简单用法
SELECT
DATEDIFF('2022-02-28', '2022-02-28'),
DATEDIFF('2022-02-28', '2022-02-28 10:10:10'),
DATEDIFF('2022-02-28 10:10:10', '2022-02-28'),
DATEDIFF('2022-02-28', '2022-02-27'),
DATEDIFF('2022-02-28', '2022-02-27 10:10:10'),
DATEDIFF('2022-02-28 10:10:10', '2022-02-27'),
DATEDIFF('2022-02-30', '2022-02-28 10:10:10'),
DATEDIFF('Not A DATEDIFF', 'Not A DATEDIFF'),
DATEDIFF(NULL, '2022-02-28')\G
DATEDIFF('2022-02-28', '2022-02-28'): 0
DATEDIFF('2022-02-28', '2022-02-28 10:10:10'): 0
DATEDIFF('2022-02-28 10:10:10', '2022-02-28'): 0
DATEDIFF('2022-02-28', '2022-02-27'): 1
DATEDIFF('2022-02-28', '2022-02-27 10:10:10'): 1
DATEDIFF('2022-02-28 10:10:10', '2022-02-27'): 1
DATEDIFF('2022-02-30', '2022-02-28 10:10:10'): NULL
DATEDIFF('Not A DATEDIFF', 'Not A DATEDIFF'): NULL
DATEDIFF(NULL, '2022-02-28'): NULL
获取一个日期距今的天数
SELECT DATEDIFF(NOW(), '2022-02-28');
+-------------------------------+
| DATEDIFF(NOW(), '2022-02-28') |
+-------------------------------+
| 44 |
+-------------------------------+
这里,我们使用了 NOW()
函数获取当前的时刻。除此之外,您还可以使用 CURDATE()
, CURRENT_DATE()
, SYSDATE()
。比如:
SELECT
DATEDIFF(NOW(), '2022-02-28'),
DATEDIFF(CURDATE(), '2022-02-28'),
DATEDIFF(CURRENT_DATE(), '2022-02-28'),
DATEDIFF(SYSDATE(), '2022-02-28')\G
DATEDIFF(NOW(), '2022-02-28'): 44
DATEDIFF(CURDATE(), '2022-02-28'): 44
DATEDIFF(CURRENT_DATE(), '2022-02-28'): 44
DATEDIFF(SYSDATE(), '2022-02-28'): 44