sql >> Base de Datos >  >> RDS >> Sqlserver

Obteniendo solo mes y año de SQL DATE

Además de las sugerencias ya dadas, hay otra posibilidad que puedo inferir de su pregunta:
- Todavía desea que el resultado sea una fecha
- Pero desea 'descartar' los Días, Horas , etc
- Dejar un campo de fecha de año/mes solamente

SELECT
   DATEADD(MONTH, DATEDIFF(MONTH, 0, <dateField>), 0) AS [year_month_date_field]
FROM
   <your_table>

Esto obtiene la cantidad de meses completos a partir de una fecha base (0) y luego los agrega a esa fecha base. Por lo tanto, redondeando hacia abajo al mes en el que se encuentra la fecha.

NOTA:En SQL Server 2008, aún tendrá la HORA adjunta como 00:00:00.000 Esto no es exactamente lo mismo que "eliminar" cualquier notación de día y hora por completo. También el DÍA se establece en el primero. p.ej. 2009-10-01 00:00:00.000