如何在SSRS中填写当前季度的开始日期?

时间:2014-07-02 18:59:05

标签: sql-server reporting-services

我在SSRS中生成一个报告,其中我有一个开始日期字段,该字段应自动填充当前季度的开始日期。有人可以帮帮我,我该怎么做?谢谢堆

2 个答案:

答案 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)