Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Obtenir uniquement le mois et l'année à partir de SQL DATE

En plus des suggestions déjà données, il y a une autre possibilité que je peux déduire de votre question :
- Vous voulez toujours que le résultat soit une date
- Mais vous voulez "supprimer" les Jours, Heures , etc
- Laisser un champ de date uniquement année/mois

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

Cela obtient le nombre de mois entiers à partir d'une date de base (0), puis les ajoute à cette date de base. Arrondi donc vers le bas au mois dans lequel se trouve la date.

REMARQUE :dans SQL Server 2008, vous aurez toujours l'HEURE attachée sous la forme 00:00:00.000Ce n'est pas exactement la même chose que de "supprimer" toute notation de jour et d'heure. De plus, le JOUR est défini sur le premier. par exemple. 2009-10-01 00:00:00.000