基于日期类型字段过滤flink表

jobtbby3  于 2021-06-21  发布在  Flink
关注(0)|答案(1)|浏览(407)

我创建了一个表,其中有一个类型为date的字段,即f\u date。我所需的查询筛选表行的一部分基于f\u 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

最后,我创建了一个日期对象并尝试:

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将日期识别为字符串或整数。我怎样才能以正确的格式给出日期!?

z31licg0

z31licg01#

我应该使用 toDate 方法。

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

相关问题