2017-02-13 15 views
2

Я создал улья таблицу, которая имеет временную метку столбца (тип данных временной метки) в следующем формате:улей временная метка запроса

2017-01-23 21: 23: 17.261456

Однако, когда я выбрать, как так. Это не работает должным образом. Он выберет даты после отметки времени. Должен ли столбец быть строкой или я неправильно использую запрос?

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

Timestamp литералы не работают хорошо с миллисекундах, что еще хуже с микросекунд ... Эксперимент с ' '2017-01-01 22: 30: 57'' и' гипсе ('2017-01-01 22:30:57' как TimeStamp) 'и' cast ('2017-01-01 22: 30: 57.375' как TimeStamp) 'и т. Д. И т. Д., Чтобы увеличить масштаб. –

ответ

0

Вам необходимо изменить тип данных вашего фильтра, например, сравнение времени с String и String. Попробуйте использовать from_utc_timestamp ('2017-01-01 22: 30: 57.375117') или from_unix().

-1
select from_unixtime(unix_timestamp('2015-12-23 22:30:57.375' ,'yyyy-MM-dd HH:mm:ss.SSS')) ; 
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')