SQL查询本周过生日、下周过生日、接下来任意天数内过生日、接下来过生日的任意数量的数据

31 篇文章 0 订阅

原始数据

在这里插入图片描述

查询接下来生日的十条数据(推荐使用)

sql语句(last_days表示距离生日的天数)
SELECT
	*,
	(
		366 + DAYOFYEAR('生日字段名') - DAYOFYEAR(NOW())
	) % 366 AS last_days
FROM
	'表名'
WHERE
	'生日字段名' IS NOT NULL
ORDER BY
	last_days
LIMIT 10
效果(我当天日期为2022-11-30)

在这里插入图片描述

查询接下来7天数内过生日的数据(包含今天)

sql语句(sql中的数字就是查询的任意天数)
SELECT
	*
FROM
	'表名'
WHERE
	DATE_FORMAT('生日日期字段', '%m-%d') >= DATE_FORMAT(NOW(), '%m-%d')
AND DATE_FORMAT('生日日期字段', '%m-%d') <= DATE_FORMAT(
	(NOW() + INTERVAL + 7 DAY),
	'%m-%d'
) 
效果(我当天日期为2022-11-30)

在这里插入图片描述

查询本周内生日的数据

sql语句
SELECT
	*
FROM
	'表名'
WHERE

	WEEK (
		DATE_FORMAT(NOW(), '%Y%m%d'),
		1
	) = WEEK (
		str_to_date(
			concat(
				DATE_FORMAT(NOW(), '%Y'),
				DATE_FORMAT('生日字段名', '%m%d')
			),
			'%Y%m%d'
		),
		1
	)
效果(我当天日期为2022-11-30,周三)

在这里插入图片描述

查询下周内生日的数据

sql语句
SELECT
	*
FROM
	'表名'
WHERE
	WEEK (
		DATE_FORMAT(NOW(), '%Y%m%d'),
		1
	) + 1 = WEEK (
		str_to_date(
			concat(
				DATE_FORMAT(NOW(), '%Y'),
				DATE_FORMAT('生日字段名', '%m%d')
			),
			'%Y%m%d'
		),
		1
	)
效果(我当天日期为2022-11-30,周三)

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

想养一只!

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

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

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

打赏作者

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

抵扣说明:

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

余额充值