2011-12-13 19 views
9

¿Cómo se selecciona una columna de fecha y hora por mes?MS SQL selecciona una fecha por mes?

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: existe en SQL Server 2008. Ref: http://msdn.microsoft.com/en-us/library/ms187813.aspx – Raihan

+0

@MGA: ¿en serio? He estado allí para siempre http://msdn.microsoft.com/en-us/library/ms187813.aspx y http://msdn.microsoft.com/en-us/library/aa933239(SQL.80).aspx – gbn

Respuesta

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

o, menos fiable based on language ajuste:

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

Tal vez, no hay una solución mejor para el problema tal como está configurado, pero esta es la forma correcta de Index Scan. –

+0

@Igor: los requisitos para el mes solo significan que una verificación de rango en la fecha no es factible. Podría ser una pregunta pobre aunque – gbn

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

Esto se rompe en algunos casos extraños: http://stackoverflow.com/a/1500018/27535 – gbn

0

utilizo EXTRACT función en lugar de DATEPART. DATEPART función no existe en mi mysql.

Cuestiones relacionadas