| 場景 | SQL 範例 | 關鍵函數 |
|---|---|---|
| 查詢「昨天」數據 | SELECT * FROM faq WHERE answer_time = DATE_SUB(CURDATE(), INTERVAL 1 DAY); |
DATE_SUB(), CURDATE() |
| 查詢「本月」數據 | SELECT name, submittime FROM enterprise WHERE DATE_FORMAT(submittime, '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m'); |
DATE_FORMAT(), NOW() |
| 查詢「今天」數據 | SELECT * FROM faq WHERE DATE_FORMAT(answer_time, '%Y-%m-%d') = DATE_FORMAT(NOW(), '%Y-%m-%d'); |
DATE_FORMAT() |
| 查詢「本周」數據 | SELECT name, submittime FROM enterprise WHERE YEARWEEK(DATE_FORMAT(submittime, '%Y-%m-%d')) = YEARWEEK(NOW()); |
YEARWEEK() |
WHERE DATE_FORMAT(col, ...) = ... 會導致全表掃描,無法命中索引。WHERE answer_time >= '2024-01-15 00:00:00' AND answer_time < '2024-01-16 00:00:00'ALTER TABLE t ADD INDEX idx_day ((DATE(answer_time)));MICROSECOND, SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR
作者:csupanpan的專欄