我在SSRS中生成一个报告,其中我有一个开始日期字段,该字段应自动填充当前季度的开始日期。有人可以帮帮我,我该怎么做?谢谢堆
答案 0 :(得分:6)
本季度的T-SQL:
SELECT DATEADD(qq,DATEDIFF(qq,0,GETDATE()),0) AS FirstDayOfCurrentQtr
或SSRS表达式,如果您想以这样的方式设置值:
=DateAdd(DateInterval.Quarter, DateDiff(DateInterval.Quarter, CDate("1/1/1900"), Today()), CDate("1/1/1900"))
答案 1 :(得分:0)
如果您想避免使用其他数据集,可以使用此表达式作为参数的默认值:
=DateSerial(Datetime.Today.Year,3 * ((datetime.Today.Month -1 )/3 + 1) -2, 1)
但这很丑陋。理想情况下,创建一个函数,您可以从表达式中调用它:
Function getQuarter (byVal d As DateTime) As DateTime
Dim quarter as Integer = (d.Month -1) / 3 + 1
Dim quarterStart AS new DateTime(d.Year, 3 * quarter - 2, 1)
getQuarter = quarterStart
End Function
将上述内容放在报告属性的代码部分中,并在表达式中调用它:
=Code.GetQuarter(Today)