【问题标题】:Get end of the day today in MySQL to compare against今天结束一天在 MySQL 中比较
【发布时间】:2018-04-29 17:48:31
【问题描述】:

我有这个问题:

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,但我该如何编写它,它会在NOW() = 2017-11-16 23:59:59 之后返回Expired

【问题讨论】:

    标签: mysql sql datetime mariadb


    【解决方案1】:

    您可以使用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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-04
      • 1970-01-01
      • 1970-01-01
      • 2015-10-09
      相关资源
      最近更新 更多