TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
函数返回datetime_expr2 - datetime_expr1的值。
datetime_expr1和datetime_expr2是date或者datetime型。
根据需要,有时date类型的值会被加上’00:00:00’当成datetime类型,unit参数指定返回的数据单位。
💧unit的值如下:
MICROSECOND, SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER ,or YEAR
💧example:
mysql> SELECT TIMESTAMPDIFF(DAY, '2022-06-06', '2022-07-07');+------------------------------------------------+
| TIMESTAMPDIFF(DAY, '2022-06-06', '2022-07-07') |
+------------------------------------------------+
| 31 |
+------------------------------------------------+
1 row in set (0.00 sec)
当datetime_expr1或者datetime_expr2其中一个为NULL时,函数返回NULL。
mysql> SELECT TIMESTAMPDIFF(DAY, '2022-03-03',null);+---------------------------------------+
| TIMESTAMPDIFF(DAY, '2022-03-03',null) |
+---------------------------------------+
| NULL |
+---------------------------------------+
DATEDIFF(expr1,expr2)
DATEDIFF() 返回expr1- expr2的值,以day(天) 为单位。
expr1和expr2是date或者datetime类型。
如果参数是datetime类型,只有日期部分会被用来计算,时间部分(比如12:00:00)不会被计算。
💧example:
mysql> SELECT DATEDIFF('2022-12-18 18:15:33', '2022-12-12 13:03:44' );+---------------------------------------------------------+
| DATEDIFF('2022-12-18 18:15:33', '2022-12-12 13:03:44' ) |
+---------------------------------------------------------+
| 6 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
当expr1或者expr2其中一个为NULL时,函数返回NULL。
mysql> SELECT DATEDIFF(NULL, '2022-12-18 18:15:33');+---------------------------------------+
| DATEDIFF(NULL, '2022-12-18 18:15:33') |
+---------------------------------------+
| NULL |
+---------------------------------------+
1 row in set (0.00 sec)
TIMEDIFF(expr1,expr2)
TIMEDIFF()函数以TIME类型的格式(比如:12:00:00)返回expr1- expr2的值,返回的结果在TIME类型数据范围之内。
expr1和expr2为TIME或者DATETIME类型。
💧example:
mysql> SELECT TIMEDIFF("2023-03-04 18:19:22", "2023-02-01 14:22:33");+--------------------------------------------------------+
| TIMEDIFF("2023-03-04 18:19:22", "2023-02-01 14:22:33") |
+--------------------------------------------------------+
| 747:56:49 |
+--------------------------------------------------------+
1 row in set (0.00 sec)
如果expr1或者expr2为NULL,则返回NULL。
mysql> SELECT TIMEDIFF(NULL, "2023-03-22 08:22:33");+---------------------------------------+
| TIMEDIFF(NULL, "2023-03-22 08:22:33") |
+---------------------------------------+
| NULL |
+---------------------------------------+
1 row in set (0.00 sec)