Hay muchos formatos compatibles con SQL Server; consulte los MSDN Books Online en CAST y CONVERT
. La mayoría de esos formatos son dependientes en qué configuraciones tiene, por lo tanto, estas configuraciones pueden funcionar algunas veces, y otras veces no.
La forma de solucionar esto es usar el (ligeramente adaptado) formato de fecha ISO-8601 que es compatible con SQL Server:este formato funciona siempre - independientemente de la configuración de formato de fecha e idioma de SQL Server.
El formato ISO-8601 es compatible con SQL Server viene en dos sabores:
YYYYMMDDsolo para fechas (sin porción de tiempo); nota aquí:¡sin guiones! , eso es muy importante!YYYY-MM-DDes NO independiente de la configuración de formato de fecha en su SQL Server y NO trabajar en todas las situaciones!
o:
YYYY-MM-DDTHH:MM:SSpara fechas y horas - nota aquí:este formato tiene guiones (pero pueden omitirse) y unaTfija como delimitador entre la parte de fecha y hora de suDATETIME.
Esto es válido para SQL Server 2000 y posteriores.
Si usa SQL Server 2008 o posterior y DATE tipo de datos (solo DATE - no DATETIME !), entonces también puede usar el YYYY-MM-DD y eso también funcionará con cualquier configuración en su SQL Server.
No me preguntes por qué todo este tema es tan complicado y algo confuso, así es como es. Pero con el YYYYMMDD formato, debería estar bien para cualquier versión de SQL Server y para cualquier configuración de idioma y formato de fecha en su SQL Server.
La recomendación para SQL Server 2008 y posteriores es usar DATE si solo necesita la parte de la fecha y DATETIME2(n) cuando necesite tanto la fecha como la hora. Debe intentar comenzar a eliminar gradualmente el DATETIME tipo de datos si es posible