首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 按時間範圍查詢常用函數速查表

     編輯:MySQL 綜合教學

核心函數對照

場景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'
  • MySQL 8.0+ 可創建函數索引:ALTER TABLE t ADD INDEX idx_day ((DATE(answer_time)));

常用時間間隔單位

MICROSECOND, SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR

作者:csupanpan的專欄

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved