Как проверить поле даты в потоках сопоставления фабрики данных Azure в условном операторе разделения

Поля исходной даты, поступающие в мой поток, выглядят как обычная дата в формате ГГГГ-ММ-ДД. Я хотел бы использовать оператор условного разделения, чтобы проверить, можно ли преобразовать конкретный столбец в столбец даты.

Я пытался использовать что-то вроде этого:

isNull(toDate($column_list[3])) == false()

Но он работает не так, как ожидалось - ›он отклоняет каждую строку ....

Вы можете помочь?


person Konrad Samulski    schedule 10.12.2020    source источник
comment
Как вы сказали, поступающие данные - это обычная дата в формате ГГГГ-ММ-ДД, это действительные данные даты (строка), и это приведет к тому, что выражение isNull(toDate($column_list[3])) всегда будет возвращать false (не null), затем 'false () == false ( ) 'также всегда будет возвращать true.   -  person Leon Yue    schedule 10.12.2020
comment
Привет, @Konrad Samulski! Если мой ответ окажется для вас полезным, надеюсь, вы сможете принять его как ответ (нажмите на галочку рядом с ответом, чтобы переключить его с серого на заполненный). Это может быть полезно для других членов сообщества. Если у вас есть другие проблемы, пожалуйста, дайте мне знать, спасибо!   -  person Leon Yue    schedule 16.12.2020


Ответы (1)


По моему опыту, если поступающие данные (мы считаем, что это строковые данные по умолчанию) не являются допустимой строкой даты, результат функции toDate() вернет NULL.

См. Этот пример:  введите описание изображения здесь

Как вы сказали, поступающие данные - это обычная дата в формате ГГГГ-ММ-ДД, это действительные данные даты (строка), и это приведет к тому, что выражение isNull(toDate($column_list[3])) всегда будет возвращать false (не ноль), тогда false()==false() также всегда будет возвращать истину.

Выражение всегда будет возвращать истину, поэтому оно не работает, как ожидалось.

person Leon Yue    schedule 16.12.2020