2013-10-18 61 views
5

我只是新的SQL Server的查詢中的日期。我有一個名爲duedate的專欄。我想過濾當月內的duedate數據。SQL服務器 - 顯示當前月份

SELECT * FROM TABLE1 WHERE duedate = within current month only 

在此先感謝。

回答

13

您應該使用範圍查詢,而不是包裹在一個函數調用列,這樣的指標可以使用。

SELECT * 
FROM TABLE1 
WHERE duedate >= DATEADD(month, DATEDIFF(month, 0, getdate()), 0) 
     AND duedate < DATEADD(month, 1 + DATEDIFF(month, 0, getdate()), 0) 
+1

此查詢的列使用索引。 –

+1

但是不要忘了[這個問題](http://www.sqlperformance.com/2013/09/t-sql-queries/datediff-bug),你首先smartened我約[這裏](HTTP:/ /stackoverflow.com/a/18242413/61305)。 –

+0

@AaronBertrand - 好一點,羞辱他們沒有提到的SQL Server版本。鏈接問題的解決方法是2008+。 –

相關問題