计算日期之间的差异

时间:2013-04-16 21:06:45

标签: mysql sql date

标题可能有点误导,但我想要的是:

SELECT * FROM table ORDER BY pid ASC

在其中一列中我有一个DATE()。我想比较当前日期(而不是时间)并返回到该日期剩余的天数。假设日期为2013-04-20,今天的日期为2013-04-16我不希望获得任何数据< current date。如果它是我希望它在几天后返回。

我一直在这里四处寻找,我发现没有办法做到这一点,我不能因为我的爱而弄明白。

3 个答案:

答案 0 :(得分:1)

如果您使用的是MySQL,则可以使用DATEDIFF()

SELECT 
    DATEDIFF(NOW(), date_column) AS days_diff
FROM
    tablename

答案 1 :(得分:1)

如果您正在寻找两个日期之间的差异,可以在MS SQL中使用GETDATE函数

SELECT DATEDIFF(DD, DateOne, DateTwo) FROM TABLE

这将返回两个日期之间的天数差异。

如果您只想要日期字段小于或等于今天日期的行,您可以使用:

SELECT DATEDIFF(DD, DateField, GETDATE())
FROM TableName
WHERE DateField <= GETDATE()

答案 2 :(得分:0)

获取两个日期之间的差异(ANSI SQL)

select the_date_column - current_date as days_left
from the_table
where the_date_column - current_date <= 4;

SQLFiddle:http://sqlfiddle.com/#!12/3148d/1