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

10

我有一个问题,希望有人可以帮助。 我的表格 (table1) 中有一个字段 (date),格式为 3/31/1988 (M/D/y),我需要计算从那个日期到现在过了多少天。

我尝试过给出以下指令:

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

但它返回了“null”,我认为这是因为两个日期格式不同(CURDATE() 是 YMD.....

这正确吗?有人可以帮帮我吗? 提前致谢。

4个回答

15

CURDATE() 返回的日期格式为 Y-m-d。因此,如果两个日期格式不匹配,则 DATEDIFF 函数将返回 NULL。因此,日期格式应该像下面这样相同: 从 table1 中选择 SELECT DATEDIFF(CURDATE(),STR_TO_DATE(date, '%Y-%m-%d')) AS days。 - Joy Chowdhury

2
您可以使用此功能获得准确的结果。
SELECT DATEDIFF(CURDATE(), DATE_FORMAT(FROM_UNIXTIME(UNIX_TIMESTAMP(`date`)), '%Y-%m-%d')) AS days FROM `table1`

2

你的DATE字段应该使用DATEDATETIME格式,以便正确地用作DATEDIFF参数。

另外,DATE是MySQL关键字,我不确定你是否可以将其用作有效的字段名。


0

如果您想考虑没有“-”符号的结果,那么您必须按照以下参数位置:

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

正数结果例如5(没有符号),如果您将小日期作为第一个参数,则会得到负号结果,例如-5。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接