Как установить дату по умолчанию для начала месяца до вчерашней даты

Я построил отчет SSRS. Я установил параметры даты по умолчанию следующим образом: startdate: взять первый день месяца. EndDate: взять вчерашнюю дату.

Этот код для начала месяца =DateSerial(Year(Now()), Month(Now()), "1").AddMonths(0) Этот код для даты вчерашнего дня

=DateAdd(DateInterval.Day,-1,CDate(FormatDateTime(Now,DateFormat.ShortDate)))

Дата работает отлично до тех пор, пока не наступит новый месяц, результат будет таким: startdate: 01. 5 2019 дата окончания: 30. 4 2019

где это должно быть: дата начала: 01. 4 2019 дата окончания: 30. 4 2019

Как я могу убедиться, что придет новая дата, это займет первый день предыдущего месяца.

Всего 2 ответа


Вы должны добавить заявление IIF чтобы проверить, является ли сегодня первый день месяца. Следующее выражение должно делать то, что вам нужно.

=IIF(DatePart(DateInterval.Day, Today()) = 1, 
     DateSerial(Year(Now()), Month(Now())-1, 1), 
     DateSerial(Year(Now()), Month(Now()), 1))

Просто измените свою StartDate на ссылку вчерашней даты:

=DateSerial(Year(Today.AddDays(-1)),Month(Today.AddDays(-1)),1)

Есть идеи?

10000