我不了解DBA。 我是一名ios开发人员,我对DBA有一个问题。
`SELECT StartDate,Subject
FROM tbl_Calendar
WHERE StartDate BETWEEN ` date('2017-04-25') AND ('2017-04-26')
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
);
非常感谢任何帮助。
答案 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,日期时间函数将你的逻辑包装在简单的表达式中就可以了吗