如何获取 mysql 数据库中两个日期之间的状态?
How to get status between two dates in mysql database?
我有一个这样的查询来获取状态而不添加字段。
SELECT * ,
IF(DATEDIFF(STR_TO_DATE(end_date, "%Y-%m-%d"), CURDATE())<=0,"End","Running") status
FROM agreements
查询是 运行 但我想添加状态,如果结束日期少于 3 天,则状态将显示 "will be ended"
所以查询中会有3个状态,END,运行,会是END
您可以使用CASE ..WHEN
statements; also your STR_TO_DATE(end, '%Y-%m-%d')
usage is unnecessary because 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
我有一个这样的查询来获取状态而不添加字段。
SELECT * ,
IF(DATEDIFF(STR_TO_DATE(end_date, "%Y-%m-%d"), CURDATE())<=0,"End","Running") status
FROM agreements
查询是 运行 但我想添加状态,如果结束日期少于 3 天,则状态将显示 "will be ended"
所以查询中会有3个状态,END,运行,会是END
您可以使用CASE ..WHEN
statements; also your STR_TO_DATE(end, '%Y-%m-%d')
usage is unnecessary because 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