如果有人可以提供帮助,我会遇到这个问题。(date)
我的表中有一个字段(table1)
是格式的日期3/31/1988 (M/D/y)
,我需要定义自该日期以来已经过去了多少天。
我试图给出这个指示
SELECT DATEDIFF(CURDATE(), date) AS days
FROM table1
但它返回'null',我认为这是因为两种日期格式不同(CURDATE()是YMD.....
这是对的吗?谁能帮我?先感谢您
You can use STR_TO_DATE()
:
SELECT DATEDIFF(CURDATE(),STR_TO_DATE(date, '%m/%d/%Y')) AS days
FROM table1
您的DATE
字段应具有DATE
或DATETIME
格式正确用作DATEDIFF
参数。
也是DATE
MySQL 关键字,我不确定您是否可以将其用作有效的字段名称。
您可以使用它来获得准确的结果
SELECT DATEDIFF(CURDATE(), DATE_FORMAT(FROM_UNIXTIME(UNIX_TIMESTAMP(`date`)), '%Y-%m-%d')) AS days FROM `table1`
如果要考虑没有 - 标志的结果,则必须遵循以下参数位置:
SELECT DATEDIFF(Big_Date,Small_Date) AS days FROM table1.
正结果,例如 5(没有符号),如果您将小日期作为第一个参数,那么它将产生负号,例如 -5。