MYSQL 获取本周、本月每天,本季度、近半年、本年、近一年的每个月份

1.日期范围获取每天(截止结束日期)

SELECT
	DATE_ADD( '2021-04-04', INTERVAL CAST( help_topic_id AS signed INTEGER ) DAY ) AS `date` 
FROM
	mysql.help_topic 
WHERE
	help_topic_id < DATEDIFF( '2021-07-04', '2021-04-04' ) + 1;

2. 日期范围获取每月(截止结束日期所在月)

SELECT
	DATE_FORMAT( DATE_ADD( '2021-04-04', INTERVAL CAST( help_topic_id AS signed INTEGER ) MONTH ), '%Y-%m' ) AS `month` 
FROM
	mysql.help_topic 
WHERE
	help_topic_id < TIMESTAMPDIFF( MONTH, '2021-04-04', '2021-07-04' ) + 1;

3.本周每天(截止今日)

SELECT
	DATE_FORMAT(DATE_ADD( DATE_SUB( NOW(), INTERVAL WEEKDAY( NOW()) + 0 DAY ), INTERVAL CAST( help_topic_id AS signed INTEGER ) DAY ), '%Y-%m-%d' ) AS `date` 
FROM
	mysql.help_topic 
WHERE
	help_topic_id <= WEEKDAY( NOW());

4.近7日每天(截止今日)

SELECT
	DATE_FORMAT( DATE_ADD( DATE_ADD( NOW(), INTERVAL - 6 DAY ), INTERVAL CAST( help_topic_id AS SIGNED INTEGER ) DAY ), '%Y-%m-%d' ) AS `date` 
FROM
	mysql.help_topic 
WHERE
	help_topic_id < 7;

5.本月每天(截止今日)

SELECT
	DATE_ADD( DATE_ADD( NOW(), INTERVAL - DAY ( NOW())+ 1 DAY ), INTERVAL CAST( help_topic_id AS signed INTEGER ) DAY ) AS `date` 
FROM
	mysql.help_topic 
WHERE
	help_topic_id < DAY ( NOW());

6.近30日每天(截止今日)

SELECT
	DATE_FORMAT( DATE_ADD( DATE_ADD( NOW(), INTERVAL - 29 DAY ), INTERVAL CAST( help_topic_id AS SIGNED INTEGER ) DAY ), '%Y-%m-%d' ) AS `date` 
FROM
	mysql.help_topic 
WHERE
	help_topic_id < 30;

7.本季度每月(截止所在月)

SELECT
	DATE_FORMAT( DATE_ADD( CONCAT( YEAR ( NOW()), '-0',(( QUARTER ( NOW()) - 1 )* 3 + 1 ), '-01' ), INTERVAL CAST( help_topic_id AS SIGNED INTEGER )MONTH  ), '%Y-%m' ) as `month`
FROM
	mysql.help_topic 
WHERE
	help_topic_id < MONTH ( NOW()) % 3;

8.近半年每月(截止所在月)

SELECT
	DATE_FORMAT( DATE_ADD( DATE_ADD( NOW(), INTERVAL - 5 MONTH ), INTERVAL CAST( help_topic_id AS SIGNED INTEGER ) MONTH ), '%Y-%m' ) as `month`
FROM
	mysql.help_topic 
WHERE
	help_topic_id < 6;

9.本年每月(截止所在月)

SELECT
	DATE_FORMAT( DATE_ADD( CONCAT( YEAR ( NOW()), '-01-01' ), INTERVAL CAST( help_topic_id AS SIGNED INTEGER ) MONTH ), '%Y-%m' ) as `month`
FROM
	mysql.help_topic 
WHERE
	help_topic_id < MONTH ( NOW());

10.近1年每月(截止所在月)

SELECT
	DATE_FORMAT( DATE_ADD( DATE_ADD( NOW(), INTERVAL - 11 MONTH ), INTERVAL CAST( help_topic_id AS SIGNED INTEGER ) MONTH ), '%Y-%m' ) as `month` 
FROM
	mysql.help_topic 
WHERE
	help_topic_id < 12;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值