当前位置:
首页 >
MySQL datediff()函数
发布时间:2023/12/3
60
豆豆
生活随笔
收集整理的这篇文章主要介绍了
MySQL datediff()函数
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
转载自 MySQL datediff()函数
MySQL DATEDIFF函数介绍
MySQL DATEDIFF函数计算两个DATE,DATETIME或TIMESTAMP值之间的天数。
MySQL DATEDIFF函数的语法如下:
DATEDIFF(date_expression_1,date_expression_2);DATEDIFF函数接受两个任何有效日期或日期时间值的参数。如果您传递DATETIME或TIMESTAMP值,则DATEDIFF函数仅将日期部分用于计算,并忽略时间部分。
DATEDIFF函数在许多情况下很有用,例如,您可以计算产品需要发送给客户的间隔时间。
MySQL DATEDIFF示例
我们来看一下使用DATEDIFF函数的一些例子。
示例-1
mysql> SELECT DATEDIFF('2017-08-17','2017-08-17'); +-------------------------------------+ | DATEDIFF('2017-08-17','2017-08-17') | +-------------------------------------+ | 0 | +-------------------------------------+ 1 row in set示例-2
mysql> SELECT DATEDIFF('2017-08-17','2017-08-08'); +-------------------------------------+ | DATEDIFF('2017-08-17','2017-08-08') | +-------------------------------------+ | 9 | +-------------------------------------+ 1 row in set示例-3
mysql> SELECT DATEDIFF('2017-08-08','2017-08-17'); +-------------------------------------+ | DATEDIFF('2017-08-08','2017-08-17') | +-------------------------------------+ | -9 | +-------------------------------------+ 1 row in set请参阅示例数据库(yiibaidb)中的以下orders表,其结构如下 -
mysql> desc orders; +----------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------------+-------------+------+-----+---------+-------+ | orderNumber | int(11) | NO | PRI | NULL | | | orderDate | date | NO | | NULL | | | requiredDate | date | NO | | NULL | | | shippedDate | date | YES | | NULL | | | status | varchar(15) | NO | | NULL | | | comments | text | YES | | NULL | | | customerNumber | int(11) | NO | MUL | NULL | | +----------------+-------------+------+-----+---------+-------+ 7 rows in set假设使用DATEDIFF函数计算所需日期和订单发货日期之间的天数,如下所示:
SELECT orderNumber, DATEDIFF(requiredDate, shippedDate) daysLeft FROMorders ORDER BY daysLeft DESC;执行上面查询语句,得到以下结果 -
+-------------+----------+ | orderNumber | daysLeft | +-------------+----------+ | 10409 | 11 | | 10410 | 10 | | 10105 | 9 | | 10135 | 9 | | 10190 | 9 | **** 此处省略了一大小波数据 ******** | 10423 | NULL | | 10424 | NULL | | 10425 | NULL | +-------------+----------+ 327 rows in set以下语句将获取状态正在处理(In Process)的所有订单,并计算订单日期和所需日期之间的天数:
SELECT orderNumber,DATEDIFF(requiredDate, orderDate) remaining_days FROMorders WHEREstatus = 'In Process' ORDER BY remaining_days;执行上面查询语句,得到以下结果 -
+-------------+----------------+ | orderNumber | remaining_days | +-------------+----------------+ | 10426 | 5 | | 10423 | 6 | | 10425 | 7 | | 10421 | 8 | | 10424 | 8 | | 10420 | 9 | | 10422 | 12 | +-------------+----------------+ 7 rows in set要计算周或月作为间隔时间,可以将DATEDIFF函数的返回值除以7或30,如下查询语句:
SELECT orderNumber,ROUND(DATEDIFF(requiredDate, orderDate) / 7, 2) as weeks,ROUND(DATEDIFF(requiredDate, orderDate) / 30,2) as months FROMorders WHEREstatus = 'In Process';执行上面查询语句,得到以下结果 -
+-------------+-------+--------+ | orderNumber | weeks | months | +-------------+-------+--------+ | 10420 | 1.29 | 0.3 | | 10421 | 1.14 | 0.27 | | 10422 | 1.71 | 0.4 | | 10423 | 0.86 | 0.2 | | 10424 | 1.14 | 0.27 | | 10425 | 1 | 0.23 | | 10426 | 0.71 | 0.17 | +-------------+-------+--------+ 7 rows in set请注意,ROUND函数用于舍入结果。
在本教程中,您已经学习了如何使用MySQL DATEDIFF函数来计算两个日期值之间的天数。
创作挑战赛新人创作奖励来咯,坚持创作打卡瓜分现金大奖总结
以上是生活随笔为你收集整理的MySQL datediff()函数的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 作家兼平面设计专家史蒂文·海勒谈成功的标
- 下一篇: MySQL date_add()函数