【问题标题】:How to get status between two dates in mysql database?如何获取mysql数据库中两个日期之间的状态?
【发布时间】:2020-02-04 00:54:38
【问题描述】:

我有一个这样的查询来获取状态而不添加字段。

SELECT * ,
      IF(DATEDIFF(STR_TO_DATE(end_date, "%Y-%m-%d"), CURDATE())<=0,"End","Running") status 
FROM agreements

查询正在运行,但我想添加状态,如果结束日期少于 3 天,则状态将显示“将结束”

所以查询中会有3个状态,END,RUNNING,Will是END

【问题讨论】:

    标签: mysql datediff


    【解决方案1】:

    您可以使用CASE ..WHEN 语句;你的 STR_TO_DATE(end, '%Y-%m-%d') 用法也是不必要的,因为 DATEDIFF() 函数仅将日期部分考虑用于计算:

    SELECT * ,
           CASE WHEN DATEDIFF(end_date, CURDATE()) <= 0 THEN 'End' 
                WHEN DATEDIFF(end_date, CURDATE()) < 3 THEN 'Will Be End' 
                ELSE 'Running'
           END status
    FROM agreements
    

    【讨论】:

      猜你喜欢
      • 2013-10-19
      • 2012-05-01
      • 2011-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-30
      • 2015-04-24
      • 2023-01-12
      相关资源
      最近更新 更多