una separar obtener nombre mes insertar hora fecha ejemplo año sql tsql datetime date-arithmetic

separar - obtener mes y año de una fecha sql



T-SQL para recortar una fecha y hora a la fecha más cercana? (7)

Duplicado de ¿Cuál es la MEJOR manera de eliminar la porción de tiempo de un valor de fecha y hora (SQL Server)?

Tengo una columna que rastrea cuando las cosas se crean utilizando una fecha y hora, pero me gustaría generar un informe que las agrupe por día, por lo que necesito una forma de anular el componente de tiempo de una columna de fecha y hora.

¿Cómo hago esto?


En mis búsquedas me encontré con la siguiente solución, solo elimina el tiempo UTC, pero me pareció interesante, así que pensé que alguien más también lo haría:

FUNCTION TrimDate(@dt AS DATETIME) RETURNS DATETIME BEGIN RETURN CAST(CAST((@dt - 0.500000038580247) AS INT) AS DATETIME) END

Supongo que funciona rápido, ya que todo lo que hace es redondear y lanzar.


convertir (varchar, el campo de fecha / valor / etc, 101)

Esta es la forma más sencilla de obtener la fecha de una fecha y hora.


declare @CurrentDate datetime set @CurrentDate = dateadd(dd, datediff(dd, 0, getdate()), 0)

--o--

select dateadd(dd, datediff(dd, 0, MyDateColumn), 0) as DateOnly from tblX


Aquí hay otra solución:

SELECT CAST( FLOOR( CAST( GETDATE() AS float) ) AS smalldatetime)



Una forma es cambiar getdate() a su nombre de columna,

select dateadd(dd, datediff(dd, 0, getdate())+0, 0)


Por qué no convertir directamente a la fecha:

select convert(date, getdate())

Esto trunca días, no rondas. Para redondear Días haz esto:

select convert(date, getdate() + 0.5)