Я пытаюсь заполнить выражение (значение параметра по умолчанию) явным временем. Как удалить время из функции «сейчас»?
Службы 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
Today()
возвращает дату только с точки зрения значения, но возвращаемый тип данных — DateTime
.
- person Chris Mack; 14.11.2018
=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, которое можно получить, щелкнув правой кнопкой мыши столбец. Это самый чистый способ сделать это. Тогда ваше выражение не будет слишком большим и сложным для визуального "разбора" :)
Я опаздываю в игре, но я пробовал все решения выше! не смог заставить его сбросить нули в параметре и дать мне значение по умолчанию (он игнорировал форматирование или казался пустым). Я использовал SSRS 2005, поэтому боролся с его неуклюжими / глючными проблемами.
Мой обходной путь состоял в том, чтобы добавить столбец в пользовательскую таблицу [DimDate] в моей базе данных, из которой я извлекал даты. Я добавил столбец, который представлял собой строковое представление в желаемом формате столбца [дата]. Затем я создал 2 новых набора данных в SSRS, которые извлекли следующие запросы для 2 значений по умолчанию для моих значений по умолчанию «Кому» и «От»:
'от'
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()))))
Просто соедините строку в конец значения:
Fields!<your field>.Value & " " 'test'
и это должно работать!
Это должно быть сделано в наборе данных. Вы могли бы сделать это
Select CAST(CAST(YourDateTime as date) AS Varchar(11)) as DateColumnName
В SSRS
Layout просто сделайте это =Fields!DateColumnName.Value