sql优化之日期,时间 查询本月,上月 不推荐date_format【sql优化】
sql优化之时间 查询本月,上月 不推荐date_format【sql优化】
·
省流:
sql中尽量避免函数操作
-- 创建时间大于等于本月第一天的数据
create_time >= date_add(curdate(), interval - day(curdate()) + 1 day);
详解:
报表或者一些查询,会用到本月数据,或者上月数据。
一般会这么写:
-- 创建时间小于等于本月的数据
date_format(create_time,'%Y%m') <= date_format(curdate(),'%Y%m')
这样会对每行数据的create_time进行date_format操作,一般不推荐在sql中进行函数计算。
我们可以用本月第一天代替:
-- 创建时间大于等于本月第一天的数据
create_time >= date_add(curdate(), interval - day(curdate()) + 1 day);
-- 上个月第一天
date_add(curdate()-day(curdate())+1,interval -1 month);
-- 下月第一天
date_add(curdate()-day(curdate())+1,interval 1 month);
日期格式的时间,默认都是0点0分0秒。例如,2023年2月的第一天,2023-02-01 00:00:00
更多推荐
所有评论(0)