MySQL常用日期期间的查询

  1. 查询当前月到之前3个月的数据
-- PERIOD_DIFF()函数返回两日期之间的差异。结果以月份计算,这个SQL只会取那一个月的
SELECT * FROM 表名 WHERE period_diff(date_format(now(), '%y%m'), date_format(字段名,'%y%m'))=3;

-- 第二种方式【略显繁琐】
SELECT * FROM 表名 WHERE 字段名 
BETWEEN date_format(
		DATE_ADD( DATE_ADD(now(), INTERVAL - DAY (now()) + 1 DAY), INTERVAL - 3 MONTH),
		'%Y-%m-%d 00:00:00')
AND date_format(
	DATE_ADD(DATE_ADD(now(), INTERVAL - DAY (now()) + 1 DAY), INTERVAL 0 MONTH),
	'%Y-%m-%d 00:00:00');
  1. 近7天的数据
SELECT * FROM 表名 WHERE DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(字段名);
  1. 昨天一天的数据
SELECT * FROM 表名 WHERE TO_DAYS(NOW()) - TO_DAYS(字段名) = 1
  1. 查询当前这周的数据
-- 查询当前这周的数据
SELECT * FROM 表名 WHERE yearweek(date_format(字段名, '%y-%m-%d')) = yearweek(now());
-- 查询上周的数据
SELECT * FROM 表名 WHERE yearweek(date_format(字段名,'%y-%m-%d')) = yearweek(now())-1;
  1. 查询本季度数据
-- 查询本季度数据
SELECT * FROM 表名 WHERE QUARTER (字段名) = QUARTER (now());
-- 查询上季度数据
SELECT * FROM 表名 WHERE QUARTER (字段名) = QUARTER (date_sub(now(), INTERVAL 1 QUARTER));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MyHarper

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值