2011-12-13 18 views
9

Ay cinsinden bir datetime sütununu nasıl seçersiniz?MS SQL ay bazında bir tarih seçin?

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

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

'WHERE ayı (MY_DATETIME) = 8 ' – Raihan

+0

@MGA: SQL Server 2008'de var. Ref: http://msdn.microsoft.com/en-us/library/ms187813.aspx – Raihan

+0

@MGA: gerçekten? Sonsuza dek orada bulundu http://msdn.microsoft.com/en-us/library/ms187813.aspx ve http://msdn.microsoft.com/en-us/library/aa933239(SQL.80).aspx – gbn

cevap

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

Veya daha az güvenilir based on language ayarı:

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

Belki de, ayarlandığı gibi sorun için daha iyi bir çözüm yoktur, ancak bu İndeks Taramanın doğru yolu. –

+0

@Igor: Yalnızca ay için gerekli olan şartlar, bir tarih aralığı kontrolünün mümkün olmadığı anlamına gelir. Zayıf bir soru olsa da – gbn

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

Bu, bazı garip durumlarda tatili: http://stackoverflow.com/a/1500018/27535 – gbn

0

yerine DATEPART ait EXTRACT işlevini kullanın. Mysql'de DATEPART işlevi bulunmuyor.

İlgili konular