2011-10-12 74 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()) 

您可以使用負數去以及前進。還有很多其他的增量可以使用,例如年,星期,星期,季度,毫秒等。