Saltar al contenido

¿Cómo obtengo el último día del mes usando SQL Reporting Services?

Te doy la bienvenida a nuestro sitio web, aquí vas a encontrar la solucíon que buscabas.

Solución:

Aquí está la respuesta que se me ocurrió

=DateSerial(Year(Now()), Month(Now()), "1").AddMonths(1).AddDays(-1)

Como me tomó un tiempo resolver esto, y la respuesta de JC fue la más simple de modificar y tenía una buena estructura lógica. Lo amplié ligeramente para otras personas que buscan respuestas sobre este tema. Descubrí que normalmente no solo desea el último día de un mes / año, también desea el primer día del mes / año. Así que aquí están las líneas completas para calcular precisamente eso. con la versión SQl allí también.

Primer día del mes actual

SSRS=Today.AddDays(1-Today.Day)
SQL=SELECT DATEADD(s,0,DATEADD(mm, DATEDIFF(m,0,getdate()),0))

Último día del mes actual

SSRS=Today.AddDays(1-Today.Day).AddMonths(1).AddDays(-1)
SQL=SELECT DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE())+1,0))

Primer día del año en curso

SSRS=Today.AddMonths(1-Today.month).AddDays(1-Today.day)
SQL=SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)

Último día del año actual

SSRS=Today.AddDays(1-Today.Day).AddMonths(13-today.month).AddDays(-1)
SQL=SELECT DATEADD(dd,-1,DATEADD(yy,0,DATEADD(yy,DATEDIFF(yy,0,getdate())+1,0)))

Espero que esto ayude a alguien.

Sé que has encontrado tu propia respuesta, pero te sugiero esta alternativa:

=Today.AddDays(1-Today.Day).AddMonths(1).AddDays(-1)

Es un poco más fácil de leer, en mi opinión, y podría tener un rendimiento ligeramente mejor (aunque lo más probable es que no se note)

Y, por supuesto, si desea ampliar esa fecha a las 23:59:59, como suele ser necesario, simplemente modifique ligeramente:

=Today.AddDays(1-Today.Day).AddMonths(1).AddSeconds(-1)

Agradecemos que desees añadir valor a nuestro contenido tributando tu veteranía en las anotaciones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *