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

Convertir fecha y hora en el servidor sql

Para obtener "25 de octubre de 2010"

Suponiendo que el valor se proporcione como una cadena, no como un tipo de datos DATETIME:

SELECT REPLACE(CONVERT(VARCHAR, CAST('2010-10-25 11:13:36.700' AS DATETIME), 106), ' ', '-')

Consulte la documentación CAST/CONVERT para otros formatos, aunque el que solicitó requiere procesamiento posterior.

Para obtener "2010-10-25 00:00:00.000"

El mejor medio de rendimiento es usar DATEADD &DATEDIFF:

SELECT DATEADD(d, DATEDIFF(dd, 0, '2010-10-25 11:13:36.700'), 0)

Referencias:

Pruebas

WITH sample AS (
   SELECT CAST('2010-10-25 11:13:36.700' AS DATETIME) dt)
SELECT REPLACE(CONVERT(VARCHAR, s.dt, 106), ' ', '-') AS col1,
       DATEADD(d, DATEDIFF(dd, 0, s.dt), 0) AS col2
  FROM sample s

Devoluciones:

col1          col2
-------------------------------------
25-Oct-2010   2010-10-25 00:00:00.000

Anexo

Dado que está en SQL Server 2005, podría facilitar el formateo de fechas creando una función SQLCLR que le permitiría usar el formato de fechas de .NET.