Службы Reporting Services удаляют время из DateTime в выражении
Я пытаюсь заполнить выражение (значение по умолчанию параметра) с явным временем. Как удалить время из функции "сейчас"?
14 ответов:
что-то вроде этого:
=FormatDateTime(Now, DateFormat.ShortDate)
где "сейчас" может быть заменено именем поля даты/времени, которое вы пытаетесь преобразовать.)
Например,=FormatDateTime(Fields!StartDate.Value, DateFormat.ShortDate)
поскольку SSRS использует VB, вы можете сделать следующее:
=Today() 'returns date only
Если бы вы использовали:
=Now() 'returns date and current timestamp
Если вам нужно отобразить поле в заголовке отчета, попробуйте это... Щелкните правой кнопкой мыши на текстовое поле > свойства > категория > дата > выберите *Формат (обратите внимание, что это будет поддерживать региональные настройки).
Так как этот вопрос был просмотрен много раз, я отправляю его... Надеюсь, это поможет.
если ожидаемый формат данных
MM-dd-yyyy
тогда попробуйте ниже,=CDate(Now).ToString("MM-dd-yyyy")
так же вы можете попробовать это одно,
=Format(Today(),"MM-dd-yyyy")
выход:
02-04-2016
Примечание:
Now()
покажет сейчас и времени
Today()
покажет вам дата только не время.также вы можете задать любой формат даты вместо
MM-dd-yyyy
в моем примере.
в свойстве format любого поля текстового поля можно использовать формат строки:
например D/M / Y, D, etc.
одна вещь, которая может помочь другим является то, что вы можете разместить:
=CDate(Now).ToString("dd/MM/yyyy")
в свойстве Format String SSRS, которое можно получить, щелкнув правой кнопкой мыши столбец. Что самый чистый способ сделать это. Тогда ваше выражение не будет слишком большим и сложно "разобрать" :)
Я опаздываю в игре, но я пробовал все решения выше! не удалось заставить его отбросить нули в параметре и дать мне значение по умолчанию (он игнорировал форматирование или казался пустым). Я использовал SSRS 2005, поэтому боролся с его неуклюжими / багги-проблемами.
мой обходной путь состоял в том, чтобы добавить столбец в пользовательскую таблицу [DimDate] в моей базе данных, из которой я вытаскивал даты. Я добавил столбец, который был строковым представлением в желаемом формате столбца [date]. Я тогда создал 2 новых набора данных в SSRS, которые вытащили следующие запросы для 2 значений по умолчанию для моих " To " & "From" date defaults -
"С"
SELECT Datestring FROM dbo.dimDate WHERE [date] = ( SELECT MAX(date) FROM dbo.dimdate WHERE date < DATEADD(month, -3, GETDATE() )
'to'
SELECT Datestring FROM dbo.dimDate WHERE [date] = ( SELECT MAX(date) FROM dbo.dimdate WHERE date <= GETDATE() )
мое решение для параметра даты / времени:
=CDate(Today())
трюк состоит в том, чтобы преобразовать обратно в DateTime, как рекомендуют Perhentian.
нашел решение от здесь
это получает последнюю секунду предыдущего дня:
DateAdd("s",-1,DateAdd("d",1,Today())
это возвращает последнюю секунду предыдущей недели:
=dateadd("d", -Weekday(Now), (DateAdd("s",-1,DateAdd("d",1,Today()))))