Mysql SQL語句查詢今天、昨天、N天內、第N天的數據


注意:因為對索引列使用函數會導致索引失效,如果查詢時需要使用到索引,請使用MySQL DATE_SUB() 函數

  • 查詢當天的所有數據
SELECT * FROM 表名 WHERE DATEDIFF(字段,NOW())=0

 

  • 查詢昨天的所有數據
SELECT * FROM 表名 WHERE DATEDIFF(字段,NOW())=-1

 

  • 查詢未來第n天的所有數據
//當n為負數時,表示過去第n天的數據
SELECT * FROM 表名WHERE DATEDIFF(字段,NOW())=n

 

  • 查詢未來n天內所有數據
//n天內
SELECT * FROM 表名 WHERE DATEDIFF(字段,NOW())<n AND DATEDIFF(字段,NOW())>=0

 

  • 查詢過去n天內所有數據
//包含當天
SELECT * FROM 表名 WHERE DATEDIFF(字段,NOW())<=0 AND DATEDIFF(字段,NOW())>-n
//不包含當天
SELECT * FROM 表名 WHERE DATEDIFF(字段,NOW())<0 AND DATEDIFF(字段,NOW())>-n

DATEDIFF函數說明:

 DATEDIFF() 函數用於返回兩個日期之間的天數。 語法:DATEDIFF(date1,date2) date1 和 date2
參數是合法的日期或日期/時間表達式。 注釋:

  1. 只有值的日期部分參與計算。
  2. 當日期date1<date2時函數返回值為負數,date1=date2時函數返回值為0,date1>date2 時函數返回值為正數。
  3. Mysql的DATEDIFF只有兩個參數。SQL Server有三個參數,詳細內容可見:SQL Date函數

本文轉自:https://blog.csdn.net/baidu_27222643/article/details/60467585


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM