按时间顺序使用当前时间?

时间:2017-04-25 12:42:42

标签: sql sqlite select-query

我不了解DBA。 我是一名ios开发人员,我对DBA有一个问题。

`SELECT StartDate,Subject
 FROM tbl_Calendar
 WHERE StartDate BETWEEN ` date('2017-04-25') AND ('2017-04-26') 

This is My Table Data

Ex:1

如果当前时间 13:30:00

给我这个订单 3,4,5,2,1

Ex:2

如果当前时间 12:35:00

给我这个订单 2,3,4,5,1

Ex:3

如果当前时间 11:35:00

给我这个订单 1,2,3,4,5

这是我的表sql:

  CREATE TABLE `tbl_Calendar` (
    `StartDate` datetime,
    `Subject`   ntext
  );

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

您可以在CASE中使用ORDER BY,如下所示:

    SELECT 
        StartDate, Subject
    FROM   
        tbl_Calendar
    WHERE  
        StartDate BETWEEN DATE ('2017-04-25') AND ('2017-04-26')
    ORDER  BY 
        CASE WHEN ((StartDate < DATETIME('now', 'localtime')) AND (StartDate <> (SELECT StartDate FROM tbl_Calendar WHERE  StartDate < DATETIME ('now', 'localtime') ORDER  BY StartDate desc limit 1))) THEN DATETIME (StartDate, '+1 day') ELSE StartDate END;

CASE内的子选择将忽略正在运行的事件记录,并仅更改以前的记录。

答案 1 :(得分:0)

你可以通过表达式进行ORDER BY,所以只需使用CASE,日期时间函数将你的逻辑包装在简单的表达式中就可以了吗