2009-07-16 9 views
38

Cela ne demande pas comment convertir une chaîne arbitraire en datetime dans MSSQL comme this question.SQL Server convertir la chaîne en datetime

Je peux contrôler le format de chaîne, mais je veux savoir quelle est la syntaxe MSSQL pour la mise à jour d'un champ datetime en utilisant une chaîne de date.

Répondre

17

Par exemple, vous pouvez utiliser

update tablename set datetimefield='19980223 14:23:05' 
update tablename set datetimefield='02/23/1998 14:23:05' 
update tablename set datetimefield='1998-12-23 14:23:05' 
update tablename set datetimefield='23 February 1998 14:23:05' 
update tablename set datetimefield='1998-02-23T14:23:05' 

Vous devez être prudent de l'ordre de jour/mois car cela dépendra la langue lorsque l'année est pas spécifiée en premier. Si vous spécifiez l'année d'abord alors il n'y a pas de problème; L'ordre des dates sera toujours l'année-mois-jour.

+3

+1 pour yyyy-MM-dd :) – Thorarin

+5

- 1. L'année d'abord ne garantit pas y-m-d. SET LANGUAGE britannique GO SELECT CAST ('2009-02-28' AS datetime), CAST ('2009-02-28 01:02:03' AS datetime) - deux échecs – gbn

+2

Vous devez utiliser "date" et SQL Server 2008 avant aaaa-mm-jj fonctionne. – gbn

97
UPDATE MyTable SET MyDate = CONVERT(datetime, '2009/07/16 08:28:01', 120) 

Pour une discussion complète de CAST et CONVERT, y compris les différentes options de formatage de date, consultez MSDN Library lien ci-dessous:

https://docs.microsoft.com/en-us/sql/t-sql/functions/cast-and-convert-transact-sql

+1

+1 pour le lien. Très utile. –

+1

+1 pour avoir répondu à la question que je cherchais, même si ce n'était pas la question de l'OP :) – Kalessin

Questions connexes