DAX - Как вернуть значение, если столбец даты попадает между двумя периодами?

datetime dax

1952 просмотра

1 ответ

88 Репутация автора

У меня есть столбец datetime в Dax, который я хочу разделить на следующие группы, создав два новых столбца:

ColBefore вернет значение 1, если DateTimeCol упадет между «14.07.2016, 12:00:00» и «16.07.2016,« 09:00:00 AM », или же вернет значение 0

ColAfter вернет значение 1, если DateTimeCol находится между «16.07.2016, 17:00:00» и «текущим временем», или же возвращаемое значение 0

Это возможно? Я старался изо всех сил работать с DATESBETWEENфункцией, но это не учитывало разницу во времени.

РЕДАКТИРОВАТЬ: Кроме того, если это возможно сделать в SQL, я могу работать с этим также.

Автор: Nick Momin Источник Размещён: 18.07.2016 08:17

Ответы (1)


0 плюса

779 Репутация автора

Если вы используете Power BI Desktop или Excel 2016, вы можете использовать функцию datediff. Мы можем использовать тот факт, что его первый параметр не может быть больше второго:

ColBefore =
IF (
    IFERROR ( DATEDIFF ( "2016-04-14 12:00:00", [DateTimeCol], HOUR ), 0 ) = 0
        || IFERROR ( DATEDIFF ( [DateTimeCol], "2016-07-16 09:00:00", HOUR ), 0 ) = 0,
    0,
    1
)



ColAfter =
IF (
    IFERROR ( DATEDIFF ( "2016-04-16 05:00:00", [DateTimeCol], HOUR ), 0 ) = 0
        || IFERROR ( DATEDIFF ( [DateTimeCol], NOW(), HOUR ), 0 ) = 0,
    0,
    1
)
Автор: Rory Размещён: 19.07.2016 09:19
Вопросы из категории :
32x32