mysql查询时间区间的数据

日期区间的截取

--上周
SELECT
	CURDATE() NOW,
	ADDDATE(
		ADDDATE(
			DATE_SUB(
				CURDATE(),
				INTERVAL WEEKDAY(CURDATE()) + 1 DAY
			) ,- 6
		),
		0
	) startdate,
	ADDDATE(
		DATE_SUB(
			CURDATE(),
			INTERVAL WEEKDAY(CURDATE()) + 1 DAY
		),
		0
	) endDate 
-- 上月
SELECT
	CURDATE() NOW,
	DATE_ADD(
		DATE_ADD(
			CURDATE(),
			INTERVAL - DAY (CURDATE()) + 1 DAY
		),
		INTERVAL - 1 MONTH
	) startdate,
	DATE_ADD(
		DATE_ADD(
			CURDATE(),
			INTERVAL - DAY (CURDATE()) DAY
		),
		INTERVAL 0 MONTH
	) endDate
-- 前四个月
SELECT
	CURDATE() NOW,
	ADDDATE(
		ADDDATE(
			CURDATE(),
			INTERVAL - DAY (CURDATE()) + 1 DAY
		),
		INTERVAL - 4 MONTH
	) startdate,
	DATE_ADD(
		DATE_ADD(
			CURDATE(),
			INTERVAL - DAY (CURDATE()) DAY
		),
		INTERVAL 0 MONTH
	) endDate
--上周四到本周三
SELECT
	ADDDATE(
		DATE_SUB(
			CURDATE(),
			INTERVAL (

				IF (
					WEEKDAY(CURDATE()) IN (3, 4, 5, 6),
					WEEKDAY(CURDATE()),
					WEEKDAY(CURDATE()) + 7
				)
			) + 1 DAY
		) ,- 3
	) startdate,
	ADDDATE(
		DATE_SUB(
			CURDATE(),
			INTERVAL (

				IF (
					WEEKDAY(CURDATE()) IN (3, 4, 5, 6),
					WEEKDAY(CURDATE()),
					WEEKDAY(CURDATE()) + 7
				)
			) + 1 DAY
		),
		3
	) endDate
--后一个小时
SELECT SYSDATE(), ADDDATE(SYSDATE(),INTERVAL 1 HOUR) endDate 
--前一个小时
SELECT SYSDATE(), SUBDATE(SYSDATE(),INTERVAL 1 HOUR) endDate
--本周数据
SELECT
	PLAN_ID,
	BUILDTIME
FROM
	TB_INSPECT_PLAN
WHERE
	YEARWEEK(
		date_format(BUILDTIME, '%Y-%m-%d')
	) = YEARWEEK(now())
--上周数据
SELECT
	PLAN_ID,
	BUILDTIME
FROM
	TB_INSPECT_PLAN
WHERE
	YEARWEEK(
		date_format(BUILDTIME, '%Y-%m-%d')
	) = YEARWEEK(now()) - 1
--当前月份的数据
SELECT
	PLAN_ID,
	BUILDTIME
FROM
	TB_INSPECT_PLAN
WHERE
	date_format(BUILDTIME, '%Y-%m') = date_format(now(), '%Y-%m')
--查询距当前6个月的数据
SELECT
	PLAN_ID,
	BUILDTIME
FROM
	TB_INSPECT_PLAN
WHERE
	BUILDTIME BETWEEN date_sub(now(), INTERVAL 6 MONTH)
AND now()
--查询上个月数据
SELECT
	PLAN_ID,
	BUILDTIME
FROM
	TB_INSPECT_PLAN
WHERE
	date_format(BUILDTIME, '%Y-%m') = date_format(
		DATE_SUB(CURDATE(), INTERVAL 1 MONTH),
		'%Y-%m'
	) 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值