sql获取日期大于当前月份的数据

时间:2016-10-19 08:40:09

标签: sql sql-server-2008 dateadd

我想检索日期字段设置为未来月份的记录

这看起来是否正确

Select * from table1 WHERE
 datesetto >MONTH(dateadd(dd, -1, GetDate())))  

3 个答案:

答案 0 :(得分:1)

 select * from tablename where month(columndate)>month(getdate()) and 
 year(columndate)>=year(getdate())

答案 1 :(得分:0)

试试这个:

  Select * from table1 WHERE
  ((DATEPART(MONTH,datesetto) > DATEPART(MONTH,GETDATE()) 
  AND DATEPART(YEAR,datesetto) = DATEPART(YEAR,GETDATE()))
  OR (DATEPART(YEAR,datesetto) > DATEPART(YEAR,GETDATE())))

DATEPART(Month,GETDATE())会给出当前日期的月份,然后您可以将其与datesetto

进行比较

更新:上述查询将提供大于当月的任何月份的数据以及当年比当年更大的任何月份。

答案 2 :(得分:0)

SELECT * FROM table1
WHERE datesetto >= DATEADD(month, DATEDIFF(month, 0, getdate())+1, 0) 

说明:

  • DATEDIFF(month, 0, getdate())计算自1900-01-01以来经过的月数。
  • DATEADD(month, DATEDIFF(month, 0, getdate()), 0)返回本月初。
  • DATEADD(month, DATEDIFF(month, 0, getdate())+1, 0)返回下个月的开头。