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

order by Time using current time?

我对DBA一无所知。 我是一名 ios 开发人员,我有一个问题要问 DBA。

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

例如:1

如果当前时间是 13:30:00

给我这个顺序 3,4,5,2,1

例如:2

如果当前时间是 12:35:00

给我这个顺序 2,3,4,5,1

例如:3

如果当前时间是 11:35:00

给我这个顺序 1,2,3,4,5

这是我的 Table sql :

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

任何帮助将不胜感激。

您可以按表达式进行 ORDER BY,因此只需使用 CASE、日期时间函数将您的逻辑包装在简单的表达式中就可以了

您可以像这样在 ORDER BY 中使用 CASE

    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里面的subselect会忽略运行事件记录,只改变之前的。