按时间排序使用当前时间?
我还没有关于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
这是我的表sql:
CREATE TABLE `tbl_Calendar` (
`StartDate` datetime,
`Subject` ntext
);
任何帮助将不胜感激。
你可以在你的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
中的子查询将忽略正在运行的事件记录并仅更改以前的记录。
好的谢谢你让我支票 –
我检查这对我很好,因为。目前我为此编写循环并打印此文件:D。当我的客户批准这一点时,我批准你的答案。 –
@HarshilKotecha没问题。很高兴帮助你。 –
您可以通过表达ORDER BY所以使用CASE,日期时间函数只是包装你的逻辑在简单的表达,你是好去
请给出查询 –
是你附近的答案,但我没有关于SQL的知识,所以不能理解你的理论是写但我不想查询。 (顺便谢谢) –
这种排序背后的原因是什么?绝对差距? –
这是一个事件sedule,所以如果当前时间是12:30,这意味着12:00正在进行中(打印第一),下一个作品是1:00(打印第二),下一个或下一个和最后一个作品完成 –
如果你不喜欢没有指定一个ORDER BY子句,这个排序实际上是未定义的(无论它看起来多么可重复)。如果您想要特定订单,请添加适当的'ORDER BY'。 – TripeHound