【MySql】几个时间间隔函数
创始人
2025-06-01 17:45:18

🌂1.TIMESTAMPDIFF

TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)


函数返回datetime_expr2 - datetime_expr1的值。
datetime_expr1datetime_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 |
+---------------------------------------+

🌂2.DATEDIFF

DATEDIFF(expr1,expr2)

DATEDIFF() 返回expr1- expr2的值,以day(天) 为单位。

expr1expr2是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)

🌂3.TIMEDIFF

TIMEDIFF(expr1,expr2)

TIMEDIFF()函数以TIME类型的格式(比如:12:00:00)返回expr1- expr2的值,返回的结果在TIME类型数据范围之内。

expr1expr2为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)

相关内容

热门资讯

投资者提问:请问董秘,当前中日... 投资者提问:请问董秘,当前中日关系陷入僵局乃至谷底之际,公司有规划更多使用国产光刻胶等材料来替代日系...
富德生命人寿咸阳中心支公司被罚... 12月16日金融一线消息,据咸阳金融监管分局行政处罚信息公开表显示,富德生命人寿保险股份有限公司咸阳...
市场监管总局:抓紧推进出台《互... 转自:北京日报客户端记者16日从市场监管总局获悉,市场监管总局正抓紧推进《互联网平台反垄断合规指引》...
天奇股份:锂电循环业务夯实产业... 12月16日,江西天奇金泰阁集团(简称“天奇金泰阁”)资本赋能发展大会在江西龙南举行。会上,天奇股份...
「侠客岛」他们用上了“AI分身...   炒股就看金麒麟分析师研报,权威,专业,及时,全面,助您挖掘潜力主题机会! (来源:海外网)来源...