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.