Cor*_*ory 15 datetime reporting-services ssrs-2008
在SQL Server Reporting Services中,如何计算当月的最后一天?
Cor*_*ory 40
这是我想出的答案
=DateSerial(Year(Now()), Month(Now()), "1").AddMonths(1).AddDays(-1)
Run Code Online (Sandbox Code Playgroud)
Tec*_*ane 21
我花了一段时间来解决这个问题,而JC的答案是最简单的修改并具有良好的逻辑结构.我为其他人搜索关于这个主题的答案略微扩展了它.我发现通常你不只是想要一个月/一年的最后一天你也想要一个月/一年的第一天.所以在这里他们是完整的线来计算.还有SQl版本.
本月第一天
SSRS=Today.AddDays(1-Today.Day)
SQL=SELECT DATEADD(s,0,DATEADD(mm, DATEDIFF(m,0,getdate()),0))
Run Code Online (Sandbox Code Playgroud)
本月最后一天
SSRS=Today.AddDays(1-Today.Day).AddMonths(1).AddDays(-1)
SQL=SELECT DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE())+1,0))
Run Code Online (Sandbox Code Playgroud)
今年的第一天
SSRS=Today.AddMonths(1-Today.month).AddDays(1-Today.day)
SQL=SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
Run Code Online (Sandbox Code Playgroud)
当年的最后一天
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)))
Run Code Online (Sandbox Code Playgroud)
我希望这有助于somone.
JC *_*ord 10
我知道你找到了自己的答案,但我建议你这样做:
=Today.AddDays(1-Today.Day).AddMonths(1).AddDays(-1)
Run Code Online (Sandbox Code Playgroud)
在我看来,它更容易阅读,并且可能会有稍微好一点的表现(尽管很可能不会引起注意)
当然,如果您想将该日期填充到23:59:59(通常是必要的),只需稍微修改:
=Today.AddDays(1-Today.Day).AddMonths(1).AddSeconds(-1)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
47488 次 |
| 最近记录: |