Hive时间戳查询

时间:2017-02-13 22:16:52

标签: sql hadoop casting hive timestamp

我创建了一个hive表,其中包含时间戳列(数据类型为时间戳),格式如下:

2017-01-23 21:23:17.261456

然而,当我选择这样的时候。它无法正常工作。它将在时间戳之后选择日期。列应该是字符串还是我使用查询错误?

select * from example where time_created < '2017-01-01 22:30:57.375117'

3 个答案:

答案 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')) ;