我有一个表,我想根据更新的时间戳过滤掉数据。我有一张table test_table
它有一个名为“updated\u timestamp”的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条答案
按热度按时间hiz5n14c1#
刚想出一个解决方案:不用from unixtime(unix\u 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');
这个很好用。