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

Insérer varchar converti dans datetime sql

Si vous devez utiliser un format de date basé sur une chaîne, vous devez en choisir un qui est sûr et fonctionne dans chaque instance SQL Server, quels que soient le format de date, la langue et les paramètres régionaux.

Ce format est appelé ISO-8601 format et c'est soit

YYYYMMDD      (note: **NO** dashes!)

ou

YYYY-MM-DDTHH:MM:SSS

pour un DATETIME colonne.

Donc au lieu de

Convert(datetime, '28/11/2012', 103)

vous devriez utiliser

CAST('20121128' AS DATETIME)

et puis ça devrait aller.

Si vous êtes sur SQL Server 2008 - vous pouvez également envisager d'utiliser DATE (au lieu de DATETIME ) pour les cas où vous n'avez besoin que de la date (pas d'heure). Ce serait encore plus simple que d'utiliser DATETIME et que la partie heure soit toujours 00:00:00