function - 如何让 SSRS 日期正确默认?
问题描述
我多年来一直在使用 SSRS,并且一直使用该功能为上个月的最后一天设置默认日期参数,使用以下内容。
=dateadd("m",0,dateserial(year(Today),month(Today),0))
但是,这一次我需要在过去 9 个月内执行此操作,因此现在是 2021 年 3 月,我希望默认日期为 2020 年 6 月 30 日,所以我使用的是:
=dateadd("m",-8,dateserial(year(Today),month(Today),0))
SSRS 返回正确的年份和月份,但是我得到的日期是 6 月 28 日,我认为这是因为它先是在 2 月,然后再回到 8 个月?如果我将 0 或 8 更改为任何数字,我仍然会在日期字段中得到 28?
解决方案
我通常从月份中减去天数得到月份的第一天,减去月份数加 1,然后减去一天得到上个月的最后一天。有点乏味,但它避免了各种月末问题。
=DATEADD("d", -1, DATEADD("M", 1 - 9, DATEADD("d", 1 - DAY(TODAY), TODAY)))
或者你可以用 VB.NET 方法做同样的事情:
=TODAY.AddDays(1 - TODAY.Day).AddMonths(-8).AddDays(-1)
推荐阅读
- c++ - 如何将数据发送到另一个进程(仅限 c++ 语言级别)
- batch-file - 计划的批处理文件错误(0xff) - 正常执行它工作正常
- java - 堆栈是从 0 开始还是从 1 开始?
- rust - 如何通过 Rust 宏将表达式中的一个标识符替换为另一个标识符?
- model-checking - UPPAAL SMC 避免状态空间爆炸
- java - 如何从 Zip 文件中提取 Json 数据并将提取的 Json 文件发送到前端?
- swift - 如何制作自定义 NSDatePickerCell 以更改选择颜色?
- html - 为什么 django 不使用拖放文件上传重定向到新的 url?
- powerbi - PowerBI - 将列函数与度量相结合
- flutter - 如何创建一个新的其他流流,返回所有发出的值的列表(块模式)?