ANSI 92 Date Difference在MySQL中不起作用

jq6vz3qz  于 2023-03-22  发布在  Mysql
关注(0)|答案(1)|浏览(122)

我正在尝试使用ANSI SQL标准计算两个日期之间的天数。但是我遗漏了一些东西,因为该语句在MySQL中返回NULL。
SELECT EXTRACT(DAY FROM DATE('2009-01-25') - DATE('2009-01-01')) AS day_diff;
我知道MySQL的DATEDIFF函数,但我很好奇为什么这段代码不起作用。
我错过了什么?

kr98yfug

kr98yfug1#

这就是你想做的吗

mysql> SELECT EXTRACT(DAY FROM DATE('2009-01-25')) - 
         EXTRACT(DAY FROM DATE('2009-01-01')) AS day_diff;
+----------+
| day_diff |
+----------+
|       24 |
+----------+
1 row in set (0.00 sec)

更新:
如果你想让它适用于不同月份(甚至不同年份)的日期,那么你可以使用MySQL DATEDIFF()函数。
示例:

mysql> select datediff('2009-04-25','2009-01-01');
+-------------------------------------+
| datediff('2009-04-25','2009-01-01') |
+-------------------------------------+
|                                 114 |
+-------------------------------------+
1 row in set (0.00 sec)

mysql> select datediff('2010-04-25','2009-01-01');
+-------------------------------------+
| datediff('2010-04-25','2009-01-01') |
+-------------------------------------+
|                                 479 |
+-------------------------------------+
1 row in set (0.00 sec)

相关问题