Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Nur Monat und Jahr aus SQL DATE erhalten

Neben den bereits gegebenen Vorschlägen kann ich Ihrer Frage eine weitere Möglichkeit entnehmen:
- Sie möchten immer noch, dass das Ergebnis ein Datum ist
- Aber Sie möchten die Tage und Stunden 'verwerfen' , etc
- Lassen Sie ein Datumsfeld nur für Jahr/Monat

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

Dies erhält die Anzahl der ganzen Monate von einem Basisdatum (0) und addiert sie dann zu diesem Basisdatum. Also Abrunden auf den Monat, in dem das Datum liegt.

HINWEIS:In SQL Server 2008 wird die ZEIT immer noch als 00:00:00.000 angehängt. Dies ist nicht genau das Gleiche wie das vollständige „Entfernen“ von Tag und Uhrzeit. Auch der TAG wird auf den ersten gesetzt. z.B. 01.10.2009 00:00:00.000