Hive时间戳比较问题

时间:2016-08-09 16:11:19

标签: hadoop hive

我有一个表格,我希望根据更新的时间戳过滤掉数据。 我有一个表test_table,它有一个名为" updated_timestamp"的时间戳列。 当我跑:
select max(ZIW_UPDATED_TIMESTAMP) from test_table;
它返回:2016-08-09 11:00:48.849 但是当我跑步时:
select count(*) from test_table where UPDATED_TIMESTAMP = from_unixtime(unix_timestamp('2016-08-09 11:00:48.849' , 'yyyy-MM-dd HH:mm:ss.SSS'));
它返回0。

这个确切的时间戳用于~5000行。我不确定这里发生了什么。

1 个答案:

答案 0 :(得分:0)

刚刚想出一个解决方案: 而不是使用from_unixtime(unix_timestamp(' 2016-08-09 11:00:48.849',' yyyy-MM-dd HH:mm:ss.SSS')); 我将timestamp列转换为unix timestamp列。
select count(*) from test_table where unix_timestamp( UPDATED_TIMESTAMP,'yyyy-MM-dd HH:mm:ss.SSS') = unix_timestamp('2016-08-09 11:00:48.849' , 'yyyy-MM-dd HH:mm:ss.SSS');
这很好。