2011-10-12 72 views
2

如何在SQL中创建未来日期?例如,我希望能够使用我的日期范围,并在下个月显示所有内容(采购订单),然后再显示两个月后的内容等。我已将NOW()用于当前日期/时间,但此并不能帮助我在所有的记录显示下个月等SQL Server:创建未来日期

感谢

这是一个SQL查询,在SQL Server 2008 R2做。

+1

这是什么RDBMS? –

+0

你将如何使用它?您是否需要针对日期列表进行外部联合,还是仅将它用作搜索过滤器? –

回答

11

如果你使用MySQL,你可以使用:

SELECT date_col FROM your_table 
WHERE date_col BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 1 MONTH) 

对于MS-SQL(它应该工作):

SELECT date_col FROM your_table 
WHERE date_col BETWEEN GETDATE() AND DATEADD(Month, 1, GETDATE()) 

对于Oracle(它应该工作):

SELECT date_col FROM your_table 
WHERE date_col BETWEEN SYSDATE AND add_months(SYSDATE, 1) 
3

您可以使用DATEADD函数来创建相对于其他日期的日期。下面的调用将整整一个月在未来生成日期:

DATEADD(month, 1, GETDATE()) 

您可以使用负数去以及前进。还有很多其他的增量可以使用,例如年,星期,星期,季度,毫秒等。