una primer obtener mes hora funciones fecha año anterior sql sql-server datetime date

sql - obtener - La forma más simple de crear una fecha que sea el primer día del mes, dada otra fecha



primer dia del año oracle (4)

En SQL Server, ¿cuál es la forma más simple / limpia de hacer que una fecha sea la primera del mes en función de otra fecha y hora? por ejemplo, tengo una variable o columna con 3-Mar-2005 14:23 y quiero obtener 1-Mar-2005 00:00 (como una fecha y no como varchar)


Algo así funcionaría ...

UPDATE YOUR_TABLE SET NewColumn = DATEADD(day, (DATEPART(day, OldColumn) -1)*-1, OldColumn)


SELECT DATEADD(mm, DATEDIFF(mm, 0, @date), 0)


Select DateAdd(Month, DateDiff(Month, 0, GetDate()), 0)

Para ejecutar esto en una columna, reemplace GetDate () con su nombre de columna.

El truco de este código es con DateDiff. DateDiff devuelve un número entero. El segundo parámetro (el 0) representa la fecha 0 en SQL Server, que es el 1 de enero de 1900. Por lo tanto, la fechada calcula el número entero de meses desde el 1 de enero de 1900, luego agrega esa cantidad de meses al 1 de enero de 1900. El efecto neto es eliminar la parte del día (y el tiempo) de un valor de fecha y hora.


Solo usa

DATEADD(DAY, 1-DAY(@date), @date)