Фильтрация Flink Table по полю типа Date

Я создал таблицу, которая имеет одно поле типа Date, а именно f_date. Одна часть моих желаемых строк таблицы фильтра запросов основана на поле f_date. Итак, я сделал следующее:

mytable.filter("f_date <= '1998-10-02'")

а также

mytable.filter("f_date <= '1998/10/02'")

затем я получил следующую ошибку во всех двух случаях:

Expression 'f_date <= 1998/10/02 failed on input check: Comparison is only supported for numeric types and comparable types of the same type, got Date and String

Я даже удалил одну цитату и попытался:

mytable.filter("f_date <= 1998/10/02")

и я получил ошибку:

Expression 'f_date <= ((1998 / 10) / 2) failed on input check: Comparison is only supported for numeric types and comparable types of same type, got Date and Integer

В конце я создаю объект Date и пытаюсь:

mytable.filter("f_date <=" + Java.sql.Date.valueOf("1998-10-22"))

и я получил ошибку:

Expression 'f_date <= ((1998 - 10) - 2) failed on input check: Comparison is only supported for numeric types and comparable types of the same type, got Date and Integer

В вышеуказанных случаях Flink распознает дату как String или Integer. Как я могу дать дату в правильном формате!?

1 ответ

Решение

Я должен преобразовать строку в дату, используя toDate метод.

filter("f_date <= '1998-10-02'.toDate")
Другие вопросы по тегам