-- log_date 是数据库中的字段,下面所有查询都不用传入参数!,是拿着表用已有数据日期和当前系统时间的比较!!
-- 查询当天数据
select * from t_log_x where to_days(log_date) = to_days(now());
select * from t_log_x where date(log_date) = curdate();
-- 查询昨天以及以后日期的数据
select * from t_log_x where to_days(now( )) - to_days( log_date) <= 1;
-- 查询从当天-7天以及今天之后的所有数据
select * from t_log_x where date_sub(curdate(), interval 7 day) <= date(log_date) order by log_date;
-- 查询今日以及今日往前的7天的数据(其实为8天数据)
select * from t_log_x where log_date between current_date()-7 and sysdate() order by log_date;
-- 查询当月数据
select * from t_log_x where date_format( log_date, '%Y%m' ) = date_format(curdate( ) , '%Y%m' ) order by log_date
-- 查询上月数据
select * from t_log_x where period_diff( date_format( now( ) , '%Y%m' ) , date_format( log_date, '%Y%m' ) ) =1 order by log_date
-- 获取下个月数据
-- 以年月为维度
SELECT * FROM table_yours WHERE PERIOD_DIFF(DATE_FORMAT(CURDATE(), '%Y%m'),DATE_FORMAT(log_date, '%Y%m')) = -1
-- 以月为维度
SELECT * FROM table_yours WHERE PERIOD_DIFF(DATE_FORMAT(CURDATE(), '%m'),DATE_FORMAT(log_date, '%m')) = - 1
我想你之前的查询或许是,对时间字符串进行截取、拼接,然后between and,
这个就不用了,咔咔就出来了