2011-12-13 54 views
9

如何按月選擇日期時間列?MS SQL按月份選擇日期時間?

TABLE A 
TITLE MY_DATETIME 
blah 2011-03-26 05:44:43.213 

SELECT * 
FROM TABLE A 
WHERE MY_DATETIME = "August" 
+4

'WHERE month(MY_DATETIME)= 8' – Raihan

+0

@MGA:There is in SQL Server 2008. Ref:http://msdn.microsoft.com/en-us/library/ms187813.aspx – Raihan

+0

@MGA:真的嗎?永遠在那裏http://msdn.microsoft.com/en-us/library/ms187813.aspx和http://msdn.microsoft.com/en-us/library/aa933239(SQL.80).aspx – gbn

回答

18
SELECT * 
FROM TABLE A 
WHERE DATEPART(month, MY_DATETIME) = 8 

或不太可靠based on language設置:

... 
WHERE DATENAME(month, MY_DATETIME) = 'August' 
+0

也許,這個問題沒有更好的解決方案,因爲它已經設置好了,但這是索引掃描的正確方法。 –

+0

@Igor:月份的要求僅表示範圍檢查日期不可行。可能是一個很差的問題,雖然 – gbn

0
SELECT * 
FROM TABLE A 
WHERE DATENAME(MONTH, MY_DATETIME) = 'August' 
+0

這打破了一些奇怪的情況:http://stackoverflow.com/a/1500018/27535 – gbn

0

我用EXTRACT函數代替DATEPARTDATEPART函數在我的mysql中不存在。

相關問題