排序顺序未被分解



我试图做一个简单的查询,我想按日期、小时和分数排序,其中日期和小时来自同一字段(划时代秒(。到目前为止,我已经通过以下方式实现了这一点:

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

所以我在发布后不久就弄清楚了。

它不漂亮,但这很管用。

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

最新更新