MySQL 不传入参数,查询出想要的时间段的数据

101 篇文章 2 订阅

-- 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,

这个就不用了,咔咔就出来了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值