我正在尝试使用ANSI SQL标准计算两个日期之间的天数。但是我遗漏了一些东西,因为该语句在MySQL中返回NULL。SELECT EXTRACT(DAY FROM DATE('2009-01-25') - DATE('2009-01-01')) AS day_diff;我知道MySQL的DATEDIFF函数,但我很好奇为什么这段代码不起作用。我错过了什么?
SELECT EXTRACT(DAY FROM DATE('2009-01-25') - DATE('2009-01-01')) AS day_diff;
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()函数。示例:
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)
1条答案
按热度按时间kr98yfug1#
这就是你想做的吗
更新:
如果你想让它适用于不同月份(甚至不同年份)的日期,那么你可以使用MySQL
DATEDIFF()
函数。示例: