如果有人可以提供帮助我有这个问题。
我的表(date)
中有一个字段(table1)
,其格式为3/31/1988 (M/D/y)
,我的必要条件是定义自该日期起已经过了多少天。
我试图给出这个指示
SELECT DATEDIFF(CURDATE(), date) AS days
FROM table1
但它回馈'null',我认为这是因为两种日期格式不同(CURDATE()是YMD .....
这是对的吗?谁能帮我? 提前谢谢
答案 0 :(得分:9)
您可以使用STR_TO_DATE()
:
SELECT DATEDIFF(CURDATE(),STR_TO_DATE(date, '%m/%d/%Y')) AS days
FROM table1
答案 1 :(得分:1)
您的DATE
字段应该DATE
或DATETIME
格式正确用作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。