标题可能有点误导,但我想要的是:
SELECT * FROM table ORDER BY pid ASC
在其中一列中我有一个DATE()。我想比较当前日期(而不是时间)并返回到该日期剩余的天数。假设日期为2013-04-20
,今天的日期为2013-04-16
我不希望获得任何数据< current date
。如果它是我希望它在几天后返回。
我一直在这里四处寻找,我发现没有办法做到这一点,我不能因为我的爱而弄明白。
答案 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