2013-10-13 8 views
0

Я пытаюсь преобразовать время в заявлении IIF.SSRS 2008 Преобразование времени в заявлении IIF

У меня есть поле со значением: 2013-10-15 01:00:00.0000000. Я пытаюсь преобразовать это в «01:00», а затем произвести 1 из 2 результатов на основе преобразования.

Я пробовал использовать оба оператора case when, который, похоже, не работает.

Я также пробовал использовать like "*01:00*", который также не работает. В настоящее время, это то, что я пытаюсь сделать, но это, кажется, что я не буду об этом правильном пути:

=iif(Fields!TEST1.VALUE LIKE ("*01:00:00.0000000*"), "TRUE", "NOT TRUE") 

ответ

0

Глядя строго на то, что вы пытаетесь сделать, с выражением SSRS вы необходимо использовать InStr для проверки подстроки в большей строки:

=IIf(InStr(Fields!TEST1.Value, "01:00:") > 0, True, False) 

Это прекрасно работает на вашем примере строки и другой тест:

enter image description here

Однако мы очень мало знаем о ваших данных - являются ли базовые данные фактически строкой или датой?

Если данные даты и времени, вы можете использовать другой подход:

=IIf(Hour(Fields!TEST1.Value) = 1 and Minute(Fields!TEST1.Value) = 0 
    , True 
    , False) 

Или даже:

=IIf(Fields!TEST1.Value.ToString("HH:mm") = "01:00" 
    , True 
    , False) 

Если возможно, я хотел бы рассмотреть функции даты-времени, если вообще возможно, так как они ближе к цели того, чего вы пытаетесь достичь.

+0

Это поле datetime, и ваша функция для этого отлично работает! Спасибо!!! – Lance

Смежные вопросы