2011-12-13 14 views
9

月ごとにdatetime列を選択するにはどうすればよいですか?MS SQLは月ごとにdatetimeを選択しますか?

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: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設定:私はEXTRACT機能の代わりDATEPARTを使用

... 
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

DATEPART my mysqlに関数が存在しません。

関連する問題