首页 > 数据库 >SQL语句——日期题目总结

SQL语句——日期题目总结

时间:2024-10-17 10:48:19浏览次数:16  
标签:语句 题目 SQL INTERVAL ADD 日期 CURDATE YEAR orders

第一题:查询本周考试的学生成绩。
  1.  DATA_ADD()语法:date就是要操作的日期,INTERVAL就是要间隔的日期 expr可以写数字,unit用来写单位,比如DATE_ADD(CURDATE(), INTERVAL 7 DAY)就是当前日期加上一星期。
  2. CURDATE()就是当前日期 ,
  3. 格式:
  4. DATE_ADD(date, INTERVAL expr unit)

代码解释:就是当前日期后面追加七天单位用DAY,用between判断

select * from result where result.ExamDate

BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 7 DAY);
第二题:查询未来3个月要过生日的学生
  1. 我们要使用between and 来判断日期
  2. 月份的加减不能够简单使用+ 或 - ,当月份为11月加三个月就变成了14月,这显然不合理,所以我们使用DATA_ADD()
  3.  MONTH(date)就是把日期放进去能够取出月份
  4. 我们以表student为例子,BornDate是出生日期

思路就是,将生日加年份,加到今年,然后就可以使用between and来进行判断在不在现在和未来三个月之间

SELECT * 
FROM student a 
WHERE DATE_ADD(a.BornDate, INTERVAL (YEAR(CURDATE()) - YEAR(a.BornDate)) YEAR) 
BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 3 MONTH);                      

第三题:找出在特定日期(如'2023-04-01')之后每个客户首次下单的日期

-- - 输出客户ID和首次下单日期。

-- - 如果客户在指定日期之后没有下过单,则不显示该客户。

1.要找到首次下单日期使用MIN()函数,这些函数需要和group by一起使用

2.'2023-04-01'这个日期之后可以使用大于号小于号:order_date > '2023-04-01'

  select MIN(orders.order_date) as '下单日期',orders.customer_id as '客户id' from orders
     where orders.order_id in (
     select orders.order_id FROM orders
     where orders.order_date > '2023-04-01' )
     GROUP BY orders.customer_id;
第四题:查询下周过生日的学生
 

这个题和第一题:查询本周考试的学生成绩。不一样,因为这个是生日,涉及到年,思路和第二题一样

也是通过ADDDATE(s_birth,INTERVAL (YEAR(CURDATE())- YEAR(student.s_birth)) YEAR)使生日的年份变成和当前时间一样的年份,然后通过between and来判断


select * from student where ADDDATE(s_birth,INTERVAL (YEAR(CURDATE())- YEAR(student.s_birth)) YEAR) BETWEEN CURDATE() AND ADDDATE(CURDATE(),INTERVAL 7 DAY);

标签:语句,题目,SQL,INTERVAL,ADD,日期,CURDATE,YEAR,orders
From: https://blog.csdn.net/qq_62859013/article/details/142999120

相关文章

  • MySQL的server层和存储引擎层是如何交互的(处理SQL)
    假设表结构createtabletest(aintnotnull,bintnotnull,cintnotnull,primarykey(a),uniquekeyidx_b(b))Engine=InnoDB;select*fromtestwhereb<2andc<3;MySQL服务层会将SQL解析,将where条件交给存储引擎层。存储引擎层拿到where条件后,发现正好......
  • sql-labs靶场第十五关测试报告
    目录一、测试环境1、系统环境2、使用工具/软件二、测试目的三、操作过程1、寻找注入点2、注入数据库①寻找注入方法②爆库,查看数据库名称③爆表,查看security库的所有表④爆列,查看users表的所有列⑤成功获取用户名和密码信息3、sqlmap注入方法①爆库②爆表③爆......
  • 力扣刷题_SQL50题
    高频SQL50题(基础版)-学习计划-力扣(LeetCode)全球极客挚爱的技术成长平台602.好友申请II:谁有最多的好友题目:编写解决方案,找出拥有最多的好友的人和他拥有的好友数目。生成的测试用例保证拥有最多好友数目的只有1个人。CreatetableIfNotExistsRequestAccepte......
  • MySQL(python开发)——(5)聚合操作
    MySQL(python开发)——(1)数据库概述及其MySQL介绍MySQL(python开发)——(2)数据库基本操作及数据类型MySQL(python开发)——(3)表数据的基本操作,增删改查MySQL(python开发)——(4)高级查询语句MySQL聚合操作聚合操作指的是在数据查找基础上对数据的进一步整理筛选行为,实际上聚合......