使用当前时间按时间排序?
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会忽略运行事件记录,只改变之前的。
我对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会忽略运行事件记录,只改变之前的。