Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Ottenere solo mese e anno da SQL DATE

Oltre ai suggerimenti già forniti, c'è un'altra possibilità che posso dedurre dalla tua domanda:
- Vuoi ancora che il risultato sia una data
- Ma vuoi 'scartare' i giorni, le ore , ecc
- Lasciando un campo data solo anno/mese

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

Questo ottiene il numero di mesi interi da una data di base (0) e quindi li aggiunge a quella data di base. Arrotondando così per difetto al mese in cui si trova la data.

NOTA:in SQL Server 2008, avrai ancora l'ORA allegato come 00:00:00.000Questo non è esattamente lo stesso che "rimuovere" tutte le annotazioni di giorno e ora del tutto. Anche il GIORNO è impostato sul primo. per esempio. 01-10-2009 00:00:00.000