請問,我是MYSQL資料庫和Python的新手。我創建了一個 "休假管理系統",這是一個使用python、Tkinter和MYSQL的桌面應用程式。我寫了一個SQL代碼,將 "當前日期 "與 "休假結束日期 "進行比較。當然,只要 "當前日期 "大于 "休假結束日期","休假狀態 "就應該被更新為 "已到期",否則就應該被更新為 "正在進行"。我現在遇到的問題是,這段代碼只能對當前月份起作用。 例如:如果休假結束日期=25/09/2021,"休假狀態 "將被更新為 "進行中",這是我期望的結果。但如果休假結束日期=09/10/2021,休假狀態將被更新為過期,我觀察到,一旦 "休假結束日期 "的月份大于 "當前日期 "的月份,"休假狀態 "將被更新為 "過期",這是錯誤的。以下是代碼:
my_cursor.execute(''' UPDATE leaves
SET leave_status =
例子
WHEN DATE_FORMAT(current_date(), '%d/%m/%y') > leave_end_date THEN 'EXPIRED' 。
不然就是'正在進行'。
結束
'')
注意:我正在使用日歷選擇器來輸入日期,這就是為什么我使用Date_format()函式。如果有人能幫助我,我將非常感激。
uj5u.com熱心網友回復:
你不能使用d/m/y格式進行比較。它把最重要的意義賦予了月的哪一天,而不是年和月。
不要對當前日期進行格式化,將leave_end_date的值決議為一個日期并進行比較。
CASE WHEN CURRENT_DATE() > STR_TO_DATE(leave_end_date, '%d/%m/%Y'/span>)
事實上,你不應該在資料庫中存盤格式化的日期,leave_end_date的資料型別應該是DATE。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/306800.html
標籤:
