【问题标题】:SSRS How to get 1st date in month with a 1 day lag?SSRS 如何获得一个月的第一个日期,滞后 1 天?
【发布时间】:2018-08-01 22:53:01
【问题描述】:

有很多解决方案解释了如何获取当月或上月的第一天。但我需要我的公式是动态的,以考虑今天的日期 -1 天滞后。

例如,今天是 2018 年 8 月 1 日,我不希望我的参数显示 2018 年 8 月 1 日,我希望它有 1 天的延迟,所以它仍然显示 2018 年 7 月 1 日。

提前谢谢你。

【问题讨论】:

  • 延迟一天还不清楚您要问什么。根据您的示例,7/1/2018 代表上个月(2018 年 7 月 1 日)。

标签: date datetime reporting-services


【解决方案1】:

此表达式将返回上个月的 1

=dateadd("m",-1,dateserial(year(Today),month(Today),1))

此表达式将返回当前月份的 1

dateadd("m",0,dateserial(year(Today),month(Today),1)) 

结合 DatePart 来计算当前日期是否是一个月的 1 日然后你可以像这样使用 SWITCH

=Switch(
   DatePart("d",Now)= 1, dateadd("m",-1,dateserial(year(Today),month(Today),1)),
   DatePart("d",Now)> 1, dateadd("m",0,dateserial(year(Today),month(Today),1)) 
 )

像这样更改字段的文本框属性

【讨论】:

  • 感谢您的快速回复!我对逻辑有点困惑。
  • dateadd("m",-1 总是取上个月吗?例如,明天 8/2/2018 我希望这个公式足够动态,然后将日期更改为 8 /1/2018 - 不再是 7/1/2018。
  • @lizfrinko 哪一部分?
  • 抱歉,公式“dateadd("M",-1" 的第一部分会一直占用上个月吗?如果您不介意,能否简要解释一下公式跨度>
  • 是的,dateadd("M",-1 将始终占用上个月。但是,我已经更新了答案以满足您的要求。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-31
  • 2012-05-29
  • 1970-01-01
  • 1970-01-01
  • 2010-09-07
相关资源
最近更新 更多