我创建了一个hive表,其中包含时间戳列(数据类型为时间戳),格式如下:
2017-01-23 21:23:17.261456
然而,当我选择这样的时候。它无法正常工作。它将在时间戳之后选择日期。列应该是字符串还是我使用查询错误?
select * from example where time_created < '2017-01-01 22:30:57.375117'
答案 0 :(得分:2)
我遇到了同样的问题:字符串和时间戳之间的比较没有自动完成。 这对我有用:
select * from example
where unix_timestamp(time_created, 'yyyy-MM-dd HH:mm:ss.SSS') <
unix_timestamp('2017-01-01 22:30:57.375117','yyyy-MM-dd HH:mm:ss.SSS')
答案 1 :(得分:0)
您需要更改过滤器的数据类型,如Time-Stamp to String比较可能是问题所在。尝试使用from_utc_timestamp(&#39; 2017-01-01 22:30:57.375117&#39;)或from_unix()命令。
答案 2 :(得分:-1)
select from_unixtime(unix_timestamp('2015-12-23 22:30:57.375' ,'yyyy-MM-dd HH:mm:ss.SSS')) ;