我有一个表格,我希望根据更新的时间戳过滤掉数据。
我有一个表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行。我不确定这里发生了什么。
答案 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');
这很好。