sql >> Base de Datos >  >> RDS >> Sqlserver

Insertar varchar convertido en datetime sql

Si debe usar un formato de fecha basado en cadenas, debe elegir uno que sea seguro y funciona en todas las instancias de SQL Server, independientemente del formato de fecha, el idioma y la configuración regional.

Ese formato se conoce como ISO-8601 formato y es

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

o

YYYY-MM-DDTHH:MM:SSS

para un DATETIME columna.

Así que en lugar de

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

deberías usar

CAST('20121128' AS DATETIME)

y entonces deberías estar bien.

Si está en SQL Server 2008 - también podría considerar usar DATE (en lugar de DATETIME ) para casos en los que solo necesita la fecha (sin parte de la hora). Eso sería incluso más fácil que usar DATETIME y tener la porción de tiempo siempre 00:00:00