簡體   English   中英

如何獲取 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 天,我想添加狀態,則狀態將顯示“將結束”

所以查詢中會有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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM