[英]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 天,我想添加狀態,則狀態將顯示“將結束”
所以查詢中會有3個狀態,END, RUNNING, Will be END
您可以使用CASE..WHEN
語句; 您的STR_TO_DATE(end, '%Y-%m-%d')
使用也是不必要的,因為DATEDIFF()
function 僅將日期部分考慮用於計算:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.