我有这样的疑问:

CASE
WHEN NOW() < `Rank`.`StartDate` THEN "Pending"
WHEN NOW() > `Rank`.`StartDate` && NOW() < `Rank`.`EndDate` THEN "Active"
WHEN NOW() > `Rank`.`EndDate` THEN "Expired"
ELSE "Invalid"
END

现在的问题是:
WHEN NOW() > `Rank`.`EndDate` THEN "Expired"

EndDate的值类似于2017-11-16 00:00:00。现在,它将基于这个值返回Expired,但我如何编写它,以便在Expired=NOW()之后返回2017-11-16 23:59:59

最佳答案

您可以使用date函数只比较日期部分而忽略一天中的时间:

CASE
WHEN DATE(NOW()) < `Rank`.`StartDate`
     THEN "Pending"
WHEN DATE(NOW()) >= `Rank`.`StartDate` && DATE(NOW()) <= `Rank`.`EndDate`
     THEN "Active"
WHEN DATE(NOW()) > `Rank`.`EndDate`
     THEN "Expired"
ELSE "Invalid"
END

关于mysql - 今天结束在MySQL中进行比较,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47325432/

10-12 00:05
查看更多