Как получить дату начала текущего квартала, заполненную в SSRS?

#sql-server #reporting-services

#sql-server #службы отчетности

Вопрос:

Я создаю отчет в SSRS, в котором я получил поле даты начала, которое должно автоматически заполнять дату начала текущего квартала. Кто-нибудь, пожалуйста, может мне помочь, как мне это сделать?. Огромное спасибо

Ответ №1:

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"))
  

Ответ №2:

если вы хотите избежать использования дополнительного набора данных, вы могли бы использовать это выражение в качестве значения по умолчанию для параметра:

 =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 свойств отчета и в выражении вызовите его с помощью:

 =Code.GetQuarter(Today)