MySQL -- 08_最流行的查询需求分析(日期相关、生日、年份距离等~)

本文主要是介绍MySQL -- 08_最流行的查询需求分析(日期相关、生日、年份距离等~),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 最流行的查询需求分析08
    • 演示数据准备的SQL
    • 需求演示
      • 日期相关的查询函数
      • 46、查询各学生的年龄
        • 使用 timestampdiff() 函数更精准
      • 47、查询本周过生日的学生
        • 简单写法:weekofyear
        • 针对不规范日期格式的判断写法:
      • 48、查询下周过生日的学生
      • 49、查询本月过生日的学生
      • 50、查询下月过生日的学生

最流行的查询需求分析08


演示数据准备的SQL


演示数据准备的SQL


需求演示


日期相关的查询函数

获取当前日期,返回 年月日,格式为:2024-04-05
select CURDATE();

在这里插入图片描述


46、查询各学生的年龄

使用 timestampdiff() 函数更精准

在这里插入图片描述


在这里插入图片描述

-- 46、查询各学生的年龄select *,YEAR(now()) - YEAR(s_birth) '年龄' from studentselect st.*,timestampdiff(YEAR,st.s_birth,CURDATE()) '年龄' from student st

47、查询本周过生日的学生

思路:查询每个学生生日日期是当前年份的第几周,然后跟当前日期是当前年份的第几周进行对比,如果相等,说明是本周过生日。


简单写法:weekofyear

在这里插入图片描述

select * from student where WEEKOFYEAR(s_birth) = WEEKOFYEAR(NOW())

针对不规范日期格式的判断写法:

在这里插入图片描述

sql 格式化下:
在这里插入图片描述

-- 47、查询本周过生日的学生-- 修改一条数据,让一个学生的生日是今天,CURRENT_DATE 返回当前年月日
UPDATE student set s_birth = CURRENT_DATE where s_id = '01'select * from student select* 
fromstudent 
whereweekofyear(str_to_date(concat( year ( now()), -- 获取当前年份:2024date_format( s_birth, '%m%d' ) -- 把每个学生的生日的月份和天数), '%Y%m%d' -- 通过 concat 把两个值合并成这个年月日格式) -- 把不规范的字符串日期格式化) -- 获取学生生日日期所在的周是今年的第几个周= weekofyear(now()) -- 获取当前日期是今年的第几个周-- 格式化:SELECT* 
FROMstudent 
WHEREweekofyear( str_to_date( concat( YEAR ( now()), date_format( s_birth, '%m%d' ) ), '%Y%m%d' ) ) = weekofyear(now())

48、查询下周过生日的学生

针对不规范日期格式的判断写法:
在这里插入图片描述

简单的写法:

在这里插入图片描述


-- 48、查询下周过生日的学生-- interval '7' day 给指定日期加 7 天, day就是+天数,month +月份,year +年份
select now(), now() + interval '7' day-- 把今天生日的01号学生,再次修改为下周生日
UPDATE student set s_birth = now() + interval '7' day  where s_id = '01'select * from student -- 和第47到一样,就是多了 【 + interval '7' day 】 SELECT* 
FROMstudent 
WHEREweekofyear( str_to_date( concat( YEAR ( now()), date_format( s_birth, '%m%d' ) ), '%Y%m%d' ) ) = weekofyear(now() + interval '7' day)-- 简单写法:select * from student where weekofyear(s_birth) = weekofyear(now() + interval '7' day)

49、查询本月过生日的学生

在这里插入图片描述

-- 49、查询本月过生日的学生-- 查当前月份
select month(now())-- 获取每个学生生日的月份
select *,month(s_birth) from student select * from  student where month(now()) = month(s_birth)

50、查询下月过生日的学生

只需要当前日期再加一个月,等于学生生日的月份即可。

在这里插入图片描述

-- 50、查询下月过生日的学生-- 当前日期
select now();-- 当前日期再加一个月
select now() + interval '1' month;select * from  student select * from  student where month(now() + interval '1' month) = month(s_birth)

这篇关于MySQL -- 08_最流行的查询需求分析(日期相关、生日、年份距离等~)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/879302

相关文章

MySQL主从同步延迟问题的全面解决方案

《MySQL主从同步延迟问题的全面解决方案》MySQL主从同步延迟是分布式数据库系统中的常见问题,会导致从库读取到过期数据,影响业务一致性,下面我将深入分析延迟原因并提供多层次的解决方案,需要的朋友可... 目录一、同步延迟原因深度分析1.1 主从复制原理回顾1.2 延迟产生的关键环节二、实时监控与诊断方案

慢sql提前分析预警和动态sql替换-Mybatis-SQL

《慢sql提前分析预警和动态sql替换-Mybatis-SQL》为防止慢SQL问题而开发的MyBatis组件,该组件能够在开发、测试阶段自动分析SQL语句,并在出现慢SQL问题时通过Ducc配置实现动... 目录背景解决思路开源方案调研设计方案详细设计使用方法1、引入依赖jar包2、配置组件XML3、核心配

Java NoClassDefFoundError运行时错误分析解决

《JavaNoClassDefFoundError运行时错误分析解决》在Java开发中,NoClassDefFoundError是一种常见的运行时错误,它通常表明Java虚拟机在尝试加载一个类时未能... 目录前言一、问题分析二、报错原因三、解决思路检查类路径配置检查依赖库检查类文件调试类加载器问题四、常见

MySQL数据库约束深入详解

《MySQL数据库约束深入详解》:本文主要介绍MySQL数据库约束,在MySQL数据库中,约束是用来限制进入表中的数据类型的一种技术,通过使用约束,可以确保数据的准确性、完整性和可靠性,需要的朋友... 目录一、数据库约束的概念二、约束类型三、NOT NULL 非空约束四、DEFAULT 默认值约束五、UN

MySQL 多表连接操作方法(INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN)

《MySQL多表连接操作方法(INNERJOIN、LEFTJOIN、RIGHTJOIN、FULLOUTERJOIN)》多表连接是一种将两个或多个表中的数据组合在一起的SQL操作,通过连接,... 目录一、 什么是多表连接?二、 mysql 支持的连接类型三、 多表连接的语法四、实战示例 数据准备五、连接的性

MySQL中的分组和多表连接详解

《MySQL中的分组和多表连接详解》:本文主要介绍MySQL中的分组和多表连接的相关操作,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录mysql中的分组和多表连接一、MySQL的分组(group javascriptby )二、多表连接(表连接会产生大量的数据垃圾)MySQL中的

Maven中引入 springboot 相关依赖的方式(最新推荐)

《Maven中引入springboot相关依赖的方式(最新推荐)》:本文主要介绍Maven中引入springboot相关依赖的方式(最新推荐),本文给大家介绍的非常详细,对大家的学习或工作具有... 目录Maven中引入 springboot 相关依赖的方式1. 不使用版本管理(不推荐)2、使用版本管理(推

MyBatis模糊查询报错:ParserException: not supported.pos 问题解决

《MyBatis模糊查询报错:ParserException:notsupported.pos问题解决》本文主要介绍了MyBatis模糊查询报错:ParserException:notsuppo... 目录问题描述问题根源错误SQL解析逻辑深层原因分析三种解决方案方案一:使用CONCAT函数(推荐)方案二:

Python中的Walrus运算符分析示例详解

《Python中的Walrus运算符分析示例详解》Python中的Walrus运算符(:=)是Python3.8引入的一个新特性,允许在表达式中同时赋值和返回值,它的核心作用是减少重复计算,提升代码简... 目录1. 在循环中避免重复计算2. 在条件判断中同时赋值变量3. 在列表推导式或字典推导式中简化逻辑

python处理带有时区的日期和时间数据

《python处理带有时区的日期和时间数据》这篇文章主要为大家详细介绍了如何在Python中使用pytz库处理时区信息,包括获取当前UTC时间,转换为特定时区等,有需要的小伙伴可以参考一下... 目录时区基本信息python datetime使用timezonepandas处理时区数据知识延展时区基本信息