Mysql SQL查詢今天、昨天、n天內、第n天
阿新 • • 發佈:2019-01-22
SQL語句如下:
注意:因為對索引列使用函式會導致索引失效,如果查詢時需要使用到索引,請使用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函式