88 votes

Comment mettre à jour un champ DateTime dans T-SQL ?

La requête suivante ne met pas à jour le champ datetime :

update table
SET EndDate = '2009-05-25'
WHERE Id = 1

Je l'ai également essayé sans tirets, mais cela ne fonctionne pas non plus.

169voto

OMG Ponies Points 144785

En cas de doute, soyez explicite sur la conversion de type de données en utilisant CAST/CONVERT :

UPDATE TABLE
   SET EndDate = CAST('2009-05-25' AS DATETIME)
 WHERE Id = 1

38voto

Serkan Hekimoglu Points 2163

Normalement, ça devrait marcher.

Mais pouvez-vous essayer ça ? Je n'ai pas SQL sur mon PC personnel, je ne peux pas essayer moi-même

UPDATE table
SET EndDate = '2009-05-25 00:00:00.000'
WHERE Id = 1

12voto

Remus Rusanu Points 159382

La chaîne littérale est collée selon le paramètre de format de date actuel, voir SET DATEFORMAT. Un format qui fonctionnera toujours est le '20090525'.

Maintenant, bien sûr, vous devez définir « ne fonctionne pas ». Aucun dossier mis à jour ? Peut-être que le Id=1 ne correspond à aucun enregistrement...

Si elle dit 'Un enregistrement changé' alors peut-être que vous avez besoin de nous montrer comment vous vérifiez...

5voto

Evgeny Sobolev Points 448
UPDATE TABLE
   SET EndDate = CAST('2017-12-31' AS DATE)
 WHERE Id = '123'

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X