MySql查詢日周月
阿新 • • 發佈:2022-04-18
常用計算日期的函式
日
date(日期) = CURDATE()
自然周
YEARWEEK(date_format(日期,'%Y-%m-%d') , 1) = YEARWEEK(now() , 1)
月
DATE_FORMAT( 日期, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )
計算周的原理
MySql計算周的函式有兩個,一個是YEARWEEK(date, mode)一個是WEEK(date, mode)
他們的原理都是通過計算當前日期是屬於一年中的第幾周,通過年的天數/7得出一年有多少周
在通過傳入得日期得出當前得日期屬於第幾周
mode引數得作用是用於確認周的計算邏輯,是從週日開始還是週一開始,預設會使用系統的default_week_format
SHOW VARIABLES LIKE 'default_week_format';
返回的是0
0是從週日開始計算的,如果需要從週一開始計算,傳1即可
兩個函式都是返回日期對應得週數,區別在於YEARWEEK()會把年份也返回,顯然用YEARWEEK
更符合查詢一個自然週數據的邏輯
SELECT WEEK('2022-04-18',1)
返回16
SELECT WEEK('2022-04-18',1)
返回202216