SSRS, если условие для времени - PullRequest
0 голосов
/ 30 апреля 2018

Я пытаюсь создать выражение, которое будет показывать только дату, если время 12:00, и будет показывать дату / время, если время не 12:00.

Я новичок в SSRS, поэтому я не совсем уверен, как это сделать. Любая помощь будет оценена.

Ответы [ 3 ]

0 голосов
/ 30 апреля 2018

Я думаю, что что-то подобное поможет с точки зрения SSRS. Введите это выражение в текстовое поле.

=IIF( TimeValue(Fields!DateField.Value) = "12:00:00 AM", 
      FORMAT(Fields!DateField.Value, "MM/dd/yyyy"), 
      Fields!DateField.Value)

Предполагается, что у вас есть правильные типы данных.

0 голосов
/ 01 мая 2018

В поле формата соответствующего текстового поля введите следующий код с DATEFIELD, замененным именем вашего поля:

=Switch(Hour(Fields!DATEFIELD.Value)=cint(0) And Minute(Fields!DATEFIELD.Value)=cint(0) And Second(Fields!DATEFIELD.Value)=cint(0),"dd/MM/yyyy",
True,"dd/MM/yyyy HH:mm:ss")
0 голосов
/ 30 апреля 2018

Решение заключается в преобразовании значения datetime как времени в другую переменную и проверке только этой части. Запуск решения ниже как есть даст значение времени «00:00:00». Если вы закомментируете первую строку и удалите комментарий со второй, функция getdate () вернет определенное значение времени, и вы увидите всю строку DATETIME.

DECLARE @v_datetime DATETIME = '2018-04-30'   --- no time
--DECLARE @v_datetime DATETIME = GETDATE()    --- includes time
DECLARE @v_time TIME = CAST(@v_datetime AS TIME)

IF @v_time = '00:00:00' BEGIN
    SELECT CAST(@v_datetime AS DATE) Result
END
ELSE BEGIN 
    SELECT @v_datetime Result
END
...