Порядок сортировки не нарушается

#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