java - Oracle中根据时间对列进行排序

标签 java oracle datetime sorting sql-order-by

我正在 Oracle 中尝试一种不同类型的排序。就像我有三列,即日期、开始时间和结束时间,我需要按以下方式对列进行排序。

如果当前时间介于开始时间和结束时间之间,则该行应位于顶部。否则应按正常升序排序。

现在我的查询如下所示

select * from details order by date,start_time

排序时如何考虑当前时间?

最佳答案

我想到的第一个想法:

SELECT *
FROM   details
ORDER  BY ( CASE WHEN date_column BETWEEN start_time AND end_time THEN 0 ELSE 1 END )
        , date_column
        , start_time;

关于java - Oracle中根据时间对列进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9357817/

相关文章:

java - Spring 安全 : Java Config does not work

xml - 在 oracle 的 XML 文档中添加命名空间

sql - 简化嵌套查询

java - 将字符串转换为日期(CEST 工作正常,GMT+02 :00 doesn't work)

javascript - Globalize.format 不适用于其他区域设置或日期格式

MySQL 减去两个日期时间并以纳秒为单位返回

java - Java 中未处理的异常

java - Hibernate 更快的 EntityManagerFactory 创建

java - 使用PHP echo服务器测量带宽

sql - 有没有一种有效的方法来避免 SQL 中固定值的联合?