Службы отчетов удаляют время из DateTime в выражении
-
22-09-2019 - |
Вопрос
Я пытаюсь заполнить выражение (значение параметра по умолчанию) с указанием явного времени.Как удалить время из функции «сейчас»?
Решение 12
Нашёл решение от здесь
Это получает последнюю секунду предыдущего дня:
DateAdd("s",-1,DateAdd("d",1,Today())
Это возвращает последнюю секунду предыдущей недели:
=dateadd("d", -Weekday(Now), (DateAdd("s",-1,DateAdd("d",1,Today()))))
Другие советы
Что-то вроде этого:
=FormatDateTime(Now, DateFormat.ShortDate)
Где «Сейчас» можно заменить именем поля даты и времени, которое вы пытаетесь преобразовать.)
Например,
=FormatDateTime(Fields!StartDate.Value, DateFormat.ShortDate)
Поскольку SSRS использует VB, вы можете сделать следующее:
=Today() 'returns date only
Если бы вы использовали:
=Now() 'returns date and current timestamp
=CDate(Now).ToString("dd/MM/yyyy")
Хотя вы жестко кодируете формат даты для локали.
Если вам нужно отобразить поле в заголовке отчета, попробуйте это...Щелкните правой кнопкой мыши по текстовому полю > Свойства > Категория > дата > выберите *Формат (обратите внимание, что при этом сохранятся региональные настройки).
Поскольку этот вопрос рассматривался много раз, я публикую его...Надеюсь, поможет.
Просто используйте DateValue(Now)
если вы хотите, чтобы результат был DateTime
тип данных.
Если ожидаемый формат данных MM-dd-yyyy
тогда попробуй ниже,
=CDate(Now).ToString("MM-dd-yyyy")
Точно так же вы можете попробовать это,
=Format(Today(),"MM-dd-yyyy")
Выход: 02-04-2016
Примечание:
Now()
покажу тебе текущая дата и отметка времени
Today()
покажу тебе Дата только не временная часть.
Также вы можете установить любой формат даты вместо MM-dd-yyyy
в моем примере.
В свойстве формата любого поля текстового поля вы можете использовать строки формата:
напримерД/М/Г, Д и т. д.
Одна вещь, которая может помочь другим, это то, что вы можете разместить: =CDate(Now).ToString("dd/MM/yyyy")
в свойстве строки формата SSRS, которое можно получить, щелкнув столбец правой кнопкой мыши.Это самый чистый способ сделать это.Тогда ваше выражение не будет слишком большим и его будет сложно визуально «разобрать» :)
FormatDateTime(Parameter.StartDate.Value)
Я опаздываю в игре, но перепробовал все приведенные выше решения!не удалось заставить его удалить нули в параметре и предоставить мне значение по умолчанию (оно игнорировало форматирование или отображалось пустым).Я использовал SSRS 2005, поэтому боролся с его неуклюжими/глючными проблемами.
Мой обходной путь заключался в добавлении столбца в пользовательскую таблицу [DimDate] в моей базе данных, из которой я извлекал даты.Я добавил столбец, который представлял собой строковое представление в желаемом формате столбца [дата].Затем я создал 2 новых набора данных в SSRS, которые извлекли следующие запросы для двух значений по умолчанию для моих значений по умолчанию для дат «До» и «От»:
'от'
SELECT Datestring
FROM dbo.dimDate
WHERE [date] = ( SELECT MAX(date)
FROM dbo.dimdate
WHERE date < DATEADD(month, -3, GETDATE()
)
'к'
SELECT Datestring
FROM dbo.dimDate
WHERE [date] = ( SELECT MAX(date)
FROM dbo.dimdate
WHERE date <= GETDATE()
)
Мое решение для параметра даты/времени:
=CDate(Today())
Хитрость заключается в том, чтобы преобразовать обратно в DateTime, как рекомендует Perhentian.
Просто объедините строку в конец значения:
Fields!<your field>.Value & " " 'test'
и это должно сработать!
Это должно быть сделано в наборе данных.Ты мог бы сделать это
Select CAST(CAST(YourDateTime as date) AS Varchar(11)) as DateColumnName
В SSRS
Макет, просто сделай это =Fields!DateColumnName.Value