2016-08-09 77 views
0

我有一张表,我想根据更新的时间戳过滤出数据。 我有一个表test_table它有一个名为“updated_timestamp”的时间戳列。 当我运行:
select max(ZIW_UPDATED_TIMESTAMP) from test_table;
它返回:2016年8月9日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'));
返回0Hive时间戳比较问题

这个确切的时间戳是正在使用〜 5000行。我不确定这里发生了什么。

回答

0

刚刚想出了一个解决方案: 而不是使用from_unixtime(unix_timestamp('2016-08-09 11:00:48.849','yyyy-MM-dd HH:mm:ss.SSS')); 我将时间戳列转换为unix时间戳列。
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');
这工作正常。