sql 求本周过生日的同学和下周过生日的学生

数据:

思路:可以通过将同学们的Sage转化为今年同一时间 然后判断此时间是否处于本周

先来认识几个函数:

select weekday(now());  #周一是0   sql中周一到周日 分别对应0-6
-- 0
select date_sub(now(), INTERVAL weekday(now()) day);  # 表示本周周一时间
-- 2024-07-15 19:17:53
select date_add(now(), INTERVAL 6 - weekday(now()) day);  #表示本周周日时间
-- 2024-07-21 19:18:30
select date_add(now(),interval 7 - weekday(now())day);  #表示下周周一时间
-- 2024-07-22 19:28:15
select date_add(now(),interval 13 - weekday(now())day); #表示下周周日时间
-- 2024-07-28 19:28:42
select concat(year(now()),'-',month(now()),'-',day(now()));   #时间拼接
-- 2024-7-15
select date(concat(year(now()), '-', month(now()), '-', day(now()))#拼接后注意转换类型
-- 2024-7-15

统计本周过生日的同学

select *
from student
where date(concat(year(now()), '-', month(Sage), '-', day(Sage)))
    between date_sub(now(), interval weekday(now()) day)
    and date_add(now(), interval 6 - weekday(now()) day) ;

查询结果:

统计下周过生日的同学

select * from student
where date(concat(year(now()), '-', month(Sage), '-', day(Sage)))
    between date_add(now(), interval 7-weekday(now()) day)
    and date_add(now(), interval 13 - weekday(now()) day) ;

查询结果:

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值