我有這個查詢,但它只適用于 DATE 型別。但我的列型別是 DATETIME。如何將此查詢更改為適用于 DATETIME 型別?我需要為今天的報告案例獲取輸出。
SELECT COUNT(report_id) as total_today_case from report where report_detection_date = CURRENT_DATE();
資料庫結構
uj5u.com熱心網友回復:
您是否希望在表格/視圖中計算滿足特定條件的專案?如果是這樣,我認為資料庫結構并不重要。我們需要了解您需要計算的內容和欄位名稱。之后,這將是一個簡單的SELECT DISTINCT COUNT(*) FROM table_abc WHERE condition情況。
uj5u.com熱心網友回復:
其中report_detection_date = CURRENT_DATE();
你在比較蘋果和橘子。CURRENT_DATE() 的時間值為“00:00:00”(午夜)。所以它永遠不等于日期和時間值,除了在午夜
| 列值 | 當前的日期() | 是平等的? |
|---|---|---|
| 2022-03-08 00:00:00 | 2022-03-08 00:00:00 | 是的 |
| 2022-03-08 08:12:14 | 2022-03-08 00:00:00 | 不 |
| 2022-03-08 14:15:22 | 2022-03-08 00:00:00 | 不 |
| 2022-03-08 18:15:22 | 2022-03-08 00:00:00 | 不 |
| 2022-03-08 23:15:22 | 2022-03-08 00:00:00 | 不 |
| 2022-03-08 23:59:59 | 2022-03-08 00:00:00 | 不 |
為了保持查詢sargable,查詢日期時間欄位的更好方法是:
WHERE ColumnName >= {TodaysDateAtMidnight}
AND ColumnName < {TomorrowsDateAtMidnight}
..或更具體地說
WHERE ColumnName >= CURRENT_DATE()
AND ColumnName < Date_Add(CURRENT_DATE(), interval 1 DAY)
uj5u.com熱心網友回復:
您可能想要格式化 report_detection_date:
SELECT COUNT(report_id) as total_today_case FROM report WHERE DATE_FORMAT(report_detection_date, "%Y-%m-%d") = CURRENT_DATE();
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/439552.html
標籤:php mysql sql phpmyadmin
