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

Cambiar el formato de fecha predeterminado almacenado en una base de datos

Ese es el quid de la confusión. Solo porque SQL Server Management Studio muestra una columna de fecha y hora en ese formato no significa que esté almacenada COMO TEXTO AAAA-MM-DD hh:mm:ss.zzz. Se almacena como binario, algo así como 0000101000001010..

Sus fechas se almacenan en SQL Server como una serie de bytes (bits en realidad) que forman un valor numérico que es una compensación de 1900-01-01. No hay un formato inherente a las fechas. A lo que te refieres es que SSMS muestra de forma predeterminada [mostrar] columnas de fecha y hora como AAAA-MM-DD hh:mm:ss.zzz. Si usa una herramienta de programación frontal, eso también puede imponer un formato [de visualización] predeterminado, a menos que haya solicitado otro.

No hay absolutamente ninguna forma de hacer que SSMS muestre datos de fecha y hora en otro formato a través de opciones o configuración. Si es necesario, deberá actualizar la consulta SQL para convertir la columna de fecha y hora en una columna VARCHAR que contenga el equivalente TEXTual en un formato particular. Eso puede ser útil en SSMS, pero sería malo cuando se usa como fuente de datos para aplicaciones web/GUI de front-end, ya que los valores no son de fecha y hora y no se pueden usar para el cálculo de intervalos, gráficos, controles vinculados a la fecha, etc.

Vea este ejemplo de mostrar la hora (getdate()) como AAAA-DD-MM, un formato muy inusual. Observe que el campo/variable de fecha debe usarse dos veces:

select stuff(convert(char(7), getdate(), 120), 5, 0, '-' + convert(char(2), getdate(), 3))