sql时间段优先级排序,按报名中、未开始、已结束 状态排序
(报名中):当前时间位于指定时间段内
(报名未开始):当前时间小于指定开始时间
(报名已结束):当前时间大于指定结束时间
SELECT *
FROM dbo.CRMActivity A
WHERE A.IsDelete = 0
AND A.IsValid = 1
ORDER BY ( CASE WHEN A.RegistrationStartTime <= GETDATE()
AND GETDATE() <= A.RegistrationEndTime THEN 1
ELSE 0
END ) DESC ,
( CASE WHEN A.RegistrationStartTime > GETDATE() THEN 1
ELSE 0
END ) DESC ,
( CASE WHEN A.RegistrationEndTime < GETDATE() THEN 1
ELSE 0
END ) DESC ,
InputTime DESC;