Вычитание дней из текущей даты

У меня есть expression, который показывает текущий день, месяц и год:

=Mid(Today(),1,9)

Как бы я отображал неделю до текущей даты? Так что, если сегодня 6/26/2014, рядом с ним будет отображаться 6/19/2014. Я попытался использовать DateAdd и добавить -7, но это дало мне ошибку.


person adamn11    schedule 26.06.2014    source источник
comment
В редакторе выражений вы должны использовать DateAdd(d,-7,‹your_date›), но в SQL вы должны использовать DATEADD(DAY,-7, ‹your_date›);   -  person Richard Hansell    schedule 26.06.2014
comment
Я попробовал это выражение, и оно отлично сработало.. =DateAdd(DateInterval.Day, -7,Today())   -  person K D    schedule 26.06.2014
comment
Я бы предложил создать функцию, используя собственный код в отчете, и передать значение даты и вернуть ожидаемое значение из этой функции. Оберните его блоком Try Catch и верните исключение в виде строки в случае сбоя. Затем вы можете проверить, что именно является ошибкой   -  person K D    schedule 26.06.2014


Ответы (3)


Я попробовал следующее выражение в ReportBuilder, и оно сработало нормально...

=DateAdd(DateInterval.Day, -7,Today())

Если вы по-прежнему получаете сообщение об ошибке, я бы предложил создать функцию с использованием пользовательского кода в отчете и передать значение даты и вернуть ожидаемое значение из этой функции. Оберните его блоком Try Catch и верните исключение в виде строки в случае сбоя. Затем вы можете проверить, что именно является ошибкой. Посмотрите на функцию здесь...

' Вызвать следующую функцию в таком выражении =Code.SubstractDate(YourDateValue)

Function SubstractDate(InputDate As DateTime) As String
Try
   Return =DateAdd(DateInterval.Day, -7,InputDate).ToString() ' Use your own format as you like
Catch ex as Exception
 Return ex.Message
End Function
person K D    schedule 26.06.2014

Просто добавьте немного больше информации о функции DateAdd:

Чтобы получить дату предыдущей недели, просто уменьшите 7 дней (добавьте число -7) в функции, например:

=DateAdd(DateInterval.Day, -7,Today())

Вы можете добавить/уменьшить год, квартал, месяц и т. д., как показано ниже. Просто измените номер на нужную длину

=DateAdd(DateInterval.Year,-1,Today())

=DateAdd(DateInterval.Quarter,-1,Today())

=DateAdd(DateInterval.Month,-1,Today())

=DateAdd(DateInterval.DayOfYear,-1,Today())

=DateAdd(DateInterval.WeekOfYear,-1,Today())

=DateAdd(DateInterval.WeekDay,-1,Today())

=DateAdd(DateInterval.Hour,-1,Today())

=DateAdd(DateInterval.Minute,-1,Today())

=DateAdd(DateInterval.Second,-1,Today())
person rchacko    schedule 31.01.2018

Я думаю, что замена ответа K D DateInterval.Day на «d» и Today () на FORMAT (Cdate (сегодня), «MM/dd/yyyy») поможет

person Ash    schedule 02.04.2019