当前日期和日期字段之间的天数

时间:2013-06-18 22:06:37

标签: mysql datediff

如果有人可以提供帮助我有这个问题。 我的表(date)中有一个字段(table1),其格式为3/31/1988 (M/D/y),我的必要条件是定义自该日期起已经过了多少天。

我试图给出这个指示

SELECT DATEDIFF(CURDATE(), date) AS days
FROM table1

但它回馈'null',我认为这是因为两种日期格式不同(CURDATE()是YMD .....

这是对的吗?谁能帮我? 提前谢谢

4 个答案:

答案 0 :(得分:9)

您可以使用STR_TO_DATE()

SELECT DATEDIFF(CURDATE(),STR_TO_DATE(date, '%m/%d/%Y')) AS days
FROM table1

SQLFiddle Demo

答案 1 :(得分:1)

您的DATE字段应该DATEDATETIME格式正确用作DATEDIFF参数。

同样DATE是MySQL关键字,我不确定您是否可以将其用作有效字段名称。

答案 2 :(得分:0)

您可以使用它来获得准确的结果

SELECT DATEDIFF(CURDATE(), DATE_FORMAT(FROM_UNIXTIME(UNIX_TIMESTAMP(`date`)), '%Y-%m-%d')) AS days FROM `table1`

答案 3 :(得分:0)

如果要考虑不带-的结果,则必须遵循以下参数位置:

SELECT DATEDIFF(Big_Date,Small_Date) AS days FROM table1.

阳性结果,例如5(不带符号),如果您将小日期作为第一个参数,则结果为减号,例如-5。