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

相关文章

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

oracle DBMS_SQL.PARSE的使用方法和示例

《oracleDBMS_SQL.PARSE的使用方法和示例》DBMS_SQL是Oracle数据库中的一个强大包,用于动态构建和执行SQL语句,DBMS_SQL.PARSE过程解析SQL语句或PL/S... 目录语法示例注意事项DBMS_SQL 是 oracle 数据库中的一个强大包,它允许动态地构建和执行

SQL 中多表查询的常见连接方式详解

《SQL中多表查询的常见连接方式详解》本文介绍SQL中多表查询的常见连接方式,包括内连接(INNERJOIN)、左连接(LEFTJOIN)、右连接(RIGHTJOIN)、全外连接(FULLOUTER... 目录一、连接类型图表(ASCII 形式)二、前置代码(创建示例表)三、连接方式代码示例1. 内连接(I

在MySQL执行UPDATE语句时遇到的错误1175的解决方案

《在MySQL执行UPDATE语句时遇到的错误1175的解决方案》MySQL安全更新模式(SafeUpdateMode)限制了UPDATE和DELETE操作,要求使用WHERE子句时必须基于主键或索引... mysql 中遇到的 Error Code: 1175 是由于启用了 安全更新模式(Safe Upd

最长公共子序列问题的深度分析与Java实现方式

《最长公共子序列问题的深度分析与Java实现方式》本文详细介绍了最长公共子序列(LCS)问题,包括其概念、暴力解法、动态规划解法,并提供了Java代码实现,暴力解法虽然简单,但在大数据处理中效率较低,... 目录最长公共子序列问题概述问题理解与示例分析暴力解法思路与示例代码动态规划解法DP 表的构建与意义动

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

MySql死锁怎么排查的方法实现

《MySql死锁怎么排查的方法实现》本文主要介绍了MySql死锁怎么排查的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录前言一、死锁排查方法1. 查看死锁日志方法 1:启用死锁日志输出方法 2:检查 mysql 错误

MySQL数据库函数之JSON_EXTRACT示例代码

《MySQL数据库函数之JSON_EXTRACT示例代码》:本文主要介绍MySQL数据库函数之JSON_EXTRACT的相关资料,JSON_EXTRACT()函数用于从JSON文档中提取值,支持对... 目录前言基本语法路径表达式示例示例 1: 提取简单值示例 2: 提取嵌套值示例 3: 提取数组中的值注意

MySQL修改密码的四种实现方式

《MySQL修改密码的四种实现方式》文章主要介绍了如何使用命令行工具修改MySQL密码,包括使用`setpassword`命令和`mysqladmin`命令,此外,还详细描述了忘记密码时的处理方法,包... 目录mysql修改密码四种方式一、set password命令二、使用mysqladmin三、修改u