Le moyen le plus simple de créer une date qui correspond au premier jour du mois, à partir d'une autre date

StackOverflow https://stackoverflow.com/questions/121581

  •  02-07-2019
  •  | 
  •  

Question

Dans SQL Server, quel est le moyen le plus simple et le plus propre de créer une date-heure représentant le premier du mois en fonction d'une autre date / heure? Par exemple, j'ai une variable ou une colonne avec 3-Mar-2005 14:23 et je veux obtenir 1-Mar-2005 00:00 (en tant que date / heure, pas en tant que varchar)

Était-ce utile?

La solution

Select DateAdd(Month, DateDiff(Month, 0, GetDate()), 0)

Pour l'exécuter sur une colonne, remplacez GetDate () par votre nom de colonne.

Le code pour ce code est avec DateDiff. DateDiff renvoie un entier. Le deuxième paramètre (le 0) représente la date 0 dans SQL Server, c'est-à-dire le 1er janvier 1900. Par conséquent, leiffiff calcule le nombre entier de mois depuis le 1er janvier 1900, puis ajoute ce nombre de mois au 1er janvier 1900. L’effet net supprime la partie jour (et heure) d’une valeur datetime.

Autres conseils

SELECT DATEADD(mm, DATEDIFF(mm, 0, @date), 0)

Quelque chose comme ça fonctionnerait ....

UPDATE YOUR_TABLE
SET NewColumn = DATEADD(day, (DATEPART(day, OldColumn) -1)*-1, OldColumn)

Il suffit d'utiliser

DATEADD(DAY, 1-DAY(@date), @date)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top