【问题标题】:Hive queries with dates带日期的 Hive 查询
【发布时间】:2019-12-04 23:09:54
【问题描述】:

我有一个小问题,我想用 hive 查询过滤一个日期,但输出是空的。我的专栏是字符串类型

我试过这个:

select * from my_table 
where to_date(date) < to_date('01/08/19 00:00:00')

我的专栏日期格式是01/08/19 18:00:00

【问题讨论】:

  • to_date 函数返回一个字符串。这是你想要的吗?在这种情况下,您试图比较两个字符串。如果你想做日期比较(在算术意义上),你可能想尝试 unix_timestamp 函数,而不是。它会给你一个数字,你可以比较两个数字并决定哪个更大哪个更小。

标签: date hive timestamp hiveql hive-query


【解决方案1】:

这种格式的日期'01/08/19 00:00:00' 不是可比较的格式,因为这种格式的'02/08/19 00:00:00' 大于'01/08/20 00:00:00'

使用unix_timestampfrom_unixtime转换成可比较的格式('yyyy-MM-dd HH:mm:ss'),再与同格式的日期比较。

select * from my_table 
where from_unixtime(unix_timestamp(date,'dd/MM/yy HH:mm:ss'),'yyyy-MM-dd HH:mm:ss') < '2019-08-01 00:00:00'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-10
    • 2022-01-20
    相关资源
    最近更新 更多