MySql查询日周月
常用计算日期的函数
日
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 YEARWEEK('2022-04-18',1)
返回202216
本文来自博客园,作者:阿弱,转载请注明原文链接:https://www.cnblogs.com/aruo/p/16159652.html