Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Inserisci varchar convertito in datetime sql

Se devi utilizzare un formato di data basato su stringhe, dovresti sceglierne uno sicuro e funziona in ogni istanza di SQL Server, indipendentemente dal formato della data, dalla lingua e dalle impostazioni internazionali.

Tale formato è noto come ISO-8601 formato ed è uno dei due

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

o

YYYY-MM-DDTHH:MM:SSS

per un DATETIME colonna.

Quindi invece di

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

dovresti usare

CAST('20121128' AS DATETIME)

e poi dovresti stare bene.

Se utilizzi SQL Server 2008 - potresti anche esaminare l'utilizzo di DATE (invece di DATETIME ) per i casi in cui è necessaria solo la data (nessuna parte dell'ora). Sarebbe ancora più facile che usare DATETIME e con la porzione di tempo sempre 00:00:00