我有这个问题:
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
。
答案 0 :(得分:3)
您可以使用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