在這裏,我想在當前日期和輸入日期的日期差異。在下面我寫case語句,但它返回NULL爲curdate()
。這是什麼問題?如何在mysql中編寫case語句?
SELECT admit_patient_details.admit_pat_doctor,admit_patient_details.admit_pat_dept,admit_patient_details.admit_pat_name,
admit_patient_details.admit_pat_room_no,admit_patient_details.admit_pat_bed_no
,patient.patient_name,patient.in_date,patient.discharge_date,
CASE patient.discharge_date
WHEN '0000-00-00' THEN DATEDIFF(curdate(),patient.in_date)
ELSE DATEDIFF(patient.discharge_date,patient.in_date)
END AS totaldays FROM admit_patient_details,patient
having admit_patient_details.admit_pat_name=patient.patient_name
一些列輸出:
admit_pat_name | in_date | discharge_date | totaldays |
Satish Mokashi |2015-05-19 | 2015-05-22 | 3 |
guddi jagtap |2015-05-12 | 2015-05-20 | 8 |
Rahul Patil |2015-04-17 | NULL | NULL |
你可以顯示一些示例數據或創建一個sqlfiddle嗎?我懷疑這可能是由於'datatypes'。檢查'discharge_date'列的數據類型。 – Beginner
@Beginner:請看我最近編輯的問題,我沒有那麼多名聲插入數據庫的圖像。我檢查數據類型都是日期,那麼爲什麼呢? –