【问题标题】:Filtering Data between Specified Dates when Date is a Timestamp当日期为时间戳时过滤指定日期之间的数据
【发布时间】:2021-03-15 16:14:27
【问题描述】:

我正在尝试在 Hive 表中过滤 2021 年 1 月 1 日至 2021 年 1 月 31 日之间的数据。包含日期的列采用时间戳格式 (yyyy-mm-dd hh-mm-ss)。有没有办法只根据 year() 月份和日期进行过滤而不输入时间?欢迎任何示例/示例代码!

【问题讨论】:

    标签: hadoop hive dbd-pg


    【解决方案1】:

    您可以使用to_date( dt_time timestamp) dt 转换为日期并删除时间部分。

    select current_timestamp() , to_date(current_timestamp() )
    

    Select * from table 
    Where
    To_date(input_datetime ) between to_date(from_datetime) and to_date (to_datetime)
    

    【讨论】:

    • 谢谢,但有没有办法把它包含在过滤器的哪里?我有数百万行日期相同但时间不同。我只想抓住所有有日期的?
    • 你能在 to_date(from_datetime) 和 to_date(to_datetime) 之间使用 input_datetime。因此,如果您的输入为 03-mar-2021 9:30:00,并且您的 from_datetime 是 3-mar-2021 12:20:00 并且 to_datetime 是 3-mar-2021 12:20:00,我发布了新的 sql应该工作。
    • 您必须使用 to_date() 进行所有比较。
    猜你喜欢
    • 2014-02-20
    • 2018-06-05
    • 1970-01-01
    • 2015-07-19
    • 2011-08-07
    • 1970-01-01
    • 1970-01-01
    • 2014-05-22
    • 2021-09-04
    相关资源
    最近更新 更多