No pude encontrar la solución que da el primer y último día del mes anterior con marca de tiempo. Espero que esto ayude a otros. Si ya existe una solución para este problema, me disculpo.
Aqui esta la solucion.
SELECT DATEADD(month, DATEDIFF(month, -1, getdate()) - 2, 0) as FirtDayPreviousMonthWithTimeStamp,
DATEADD(ss, -1, DATEADD(month, DATEDIFF(month, 0, getdate()), 0)) as LastDayPreviousMonthWithTimeStamp
Esto devolverá lo siguiente si currentdate = '2012-7-31'
resultado: 2012-06-01 00:00:00.000 2012-06-30 23:59:59.000
Esto devolverá lo siguiente si currentdate = '2012-1-1'
resultado: 2011-12-01 00:00:00.000 2011-12-31 23:59:59.000
sql-server
datetime
Jay S
fuente
fuente
Respuestas:
fuente
-1
deDATEDIFF
lanza y error queThe arguments to the following function are not valid: DATEDIFF
Primer día de la semana actual.
Último día de la semana actual.
Primer día de la semana pasada.
Último día de la semana pasada.
Primer día de la próxima semana.
Último día de la próxima semana.
Primer día del mes actual.
Último día del mes actual.
En este ejemplo, solo funciona el día 31 y no los días restantes.
Primer día del último mes.
Último día del último mes.
Primer día del mes siguiente.
Último día del mes siguiente.
Primer día del año actual.
Último día del año actual.
Primer día del año pasado.
Último día del año pasado.
Primer día del próximo año.
Último día del año que viene.
fuente
fuente
Solución
Para calcular realmente los valores que solicitó, incluya lo siguiente en su SQL.
Tenga en cuenta que debe pegarse antes que cualquier declaración que haga referencia a los parámetros, pero a partir de ese momento puede hacer referencia a @FirstDayOfLastMonth y @LastDayOfLastMonth en su código.
Ejemplo
Veamos un código en acción:
Ejecute el código anterior para producir el siguiente resultado:
Nota: Tenga en cuenta que la fecha de hoy para mí es el 12 de septiembre de 2016 .
Parámetros de fecha comunes
¿Te quedas con ganas de más?
Para configurar un rango más completo de parámetros útiles relacionados con la fecha, incluya lo siguiente en su SQL:
Tendría más sentido incluirlo antes, preferiblemente en la parte superior de su procedimiento o consulta SQL.
Una vez declarados, los parámetros pueden ser referenciados en cualquier lugar de su código, tantas veces como los necesite.
Ejemplo
Veamos un código en acción:
Ejecute el código anterior para producir el siguiente resultado:
Si falta su país, es porque no conozco el código. Sería muy útil y apreciaría si pudiera editar esta respuesta y agregar una nueva columna para su país.
Gracias por adelantado.
Nota: Tenga en cuenta que la fecha de hoy para mí es el 12 de septiembre de 2016 .
Referencias
Para obtener más información sobre el estándar de fecha internacional ISO8601, siga este enlace:
Para obtener más información sobre el estándar internacional de fechas ODBC, siga este enlace:
Para ver la lista de formatos de fecha con los que trabajé, siga este enlace:
Para obtener más información sobre el tipo de datos DATETIME, siga este enlace:
fuente
fuente
Desde SQL2012, se introdujo una nueva función llamada
EOMONTH
. Con esta función se puede encontrar fácilmente el primer y último día del último mes.fuente
He utilizado la siguiente lógica en los informes SSRS.
fuente
Puede obtener el primer y último día del mes anterior (con marca de tiempo) en SQL Server ejecutando
fuente
Tome alguna fecha base que sea el 31 de algún mes, por ejemplo, '20011231'. Luego use el
siguiente procedimiento (he dado 3 ejemplos idénticos a continuación, solo el valor @dt difiere).
fuente
He aquí una forma bastante directa y dinámica. Para el último día del mes pasado, reste el día numérico actual de la fecha de hoy. Para el primer día del mes pasado, use el mismo código, simplemente repita restando el día numérico del resultado anterior y sume 1.
fuente
Para obtener la primera fecha del mes pasado:
Para obtener la última fecha del mes pasado:
fuente
Todavía no he visto esta solución presentada; esta es mi preferencia por su legibilidad más simple:
fuente
Esta es la forma más sencilla que conozco de obtener el primer día del mes anterior:
Paso 1: mover datos a Postgres
Paso 2:
fuente