#nosql #phoenix
#nosql #apache-phoenix
Вопрос:
Я пытаюсь выполнить простой запрос, в котором я хочу упорядочить по дате, часу и оценке, где дата и час поступают из одного и того же поля (epoch_seconds). До сих пор я добивался этого следующим образом:
SELECT cast(epoch_seconds as date) as d, hour(cast(epoch_seconds as time)) as t, score as s
FROM MyTable
order by cast(epoch_seconds as date), hour(cast(epoch_seconds as time)) desc, s asc
limit 10;
Проблема, с которой я сталкиваюсь, заключается в том, что когда дата есть, она, КАЖЕТСЯ, упорядочивается по дате и времени, что делает другие виды бессмысленными (поскольку они вплоть до второго). Я проверил это, попробовав следующее, и это работает соответствующим образом.
SELECT TO_DATE('1986-12-11') d, hour(cast(epoch_seconds as time)) as t, score as s
FROM MyTable
order by d, hour(cast(epoch_seconds as time)) desc, s asc
limit 10;
есть ли способ сортировать по дате, игнорируя время?
Спасибо
Редактировать:
чтобы доказать свою теорию, я попробовал следующее
TO_CHAR(cast(epoch_seconds as date))
и он отображает
2020-09-02 14:53:30.313
Ответ №1:
Итак, я закончил тем, что выяснил это вскоре после публикации.
это некрасиво, но это делает свое дело.
select subStr(TO_CHAR(cast(epoch_seconds as date)),0,10) as d,
cast(epoch_seconds as time) as t
From table
order by d, t