MySQL中根据出生日期计算年龄两种方法

 更新时间:2024年05月22日 11:23:18   作者:oceanexe  
使用SQL语句计算年龄,在事务处理和日期计算中,较为常见,下面这篇文章主要给大家介绍了关于MySQL中根据出生日期计算年龄的两种方法,文中通过代码介绍的非常详细,需要的朋友可以参考下

创建student表

mysql> create table student(                                                                            
    ->     sid int primary key comment '学生号',                                                        
    ->     sname varchar(20) comment'姓名',                                                             
    ->     birth DATE comment '生日'                                                                    
    -> );                                                                                               
Query OK, 0 rows affected (0.01 sec)

student表中插入数据

mysql> insert into student values (100,'张三','1999-12-12');                                            
Query OK, 1 row affected (0.00 sec)                                                                     
mysql> insert into student values (101,'李四','1996-8-15');                                             
Query OK, 1 row affected (0.01 sec)

 查询表中数据

mysql> select *  from student;

查询每个人的年龄

方法一:

curdate() 函数和 now() 函数的区别:

#在MySQL中,curdate( ) 和 now( ) 都是内置函数,用于获取日期和时间信息,但它们的返回值有所不同。

# curdate() 函数只返回当前日期部分,格式为'YYYY-MM-DD';

  now()函数则会返回当前的日期和时间,格式为'YYYY-MM-DD HH:MM:SS'

#因此,curdate( ) 和 now( ) 的主要区别在于,curdate( ) 只返回日期,而 now( ) 返回日期和时间。

year( )函数:

#在MySQL中,year( curdate( ) )是一个函数调用,它的作用是从当前日期(由curdate()函数返回)中提取出年份部分。

#因此这个 year()  函数通常用于获取当前年份,或者在进行日期比较或处理时,只关心年份部分。

mysql> select sname,year(curdate())-year(birth) as 年龄 from student;

方法二:

date_format( now(), '%Y') 函数和 date_format( birth, '%Y')函数:

#在MySQL中,date_format(now(),'%Y') 和date_format(birth,'%Y')是两个函数调用,它们的作用是从当前日期(由now()函数返回)和birth日期中提取出年份部分。

# %Y是一个格式代码,表示四位数的年份。

# 所以,date_format(now(),'%Y')返回的是当前年份,  date_format ( birth, '%Y')返回的是birth 日期的年份。

# date_format ( now(), '%Y')    -  date_format ( birth, '%Y')的结果就是当前年份减去 birth 日期的年份。这个表达式通常用于计算某人的年龄。

mysql> select sname,date_format(now(),'%Y')-date_format(birth,'%Y') as  年龄 from student;  

附:mysql知道年龄求出生日期

下面是完整的代码示例,包括获取当前日期和年龄、计算出生日期和使用MySQL函数实现计算。

-- 获取当前日期和年龄
SELECT CURDATE();

SELECT YEAR('2000-01-01');

SELECT YEAR('2022-01-01') - YEAR('2000-01-01');

-- 计算出生日期
SET @current_year = YEAR(CURDATE());
SET @age = 30;
SET @birth_year = @current_year - @age;

SET @birth_date = CONCAT(@birth_year, '-01-01');

-- 使用MySQL函数实现计算
SET @current_date = CURDATE();
SET @birth_date = DATE_SUB(@current_date, INTERVAL @age YEAR);

总结 

到此这篇关于MySQL中根据出生日期计算年龄两种方法的文章就介绍到这了,更多相关MySQL根据出生日期计算年龄内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解mysql中字符串转为数字的三种方法

    详解mysql中字符串转为数字的三种方法

    这篇文章主要为大家详细介绍了mysql中字符串转为数字的三种常用方法,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-11-11
  • Mysql的SELECT语句与显示表结构详解

    Mysql的SELECT语句与显示表结构详解

    这篇文章主要介绍了Mysql的SELECT语句与显示表结构详解的相关资料,需要的朋友可以参考下
    2023-01-01
  • mysql中写判断语句的方法总结

    mysql中写判断语句的方法总结

    在本篇文章里小编给大家整理的是一篇关于mysql中写判断语句的方法总结内容,需要的朋友们可以学习参考下。
    2020-09-09
  • MySQL数据库 JDBC 编程(Java 连接 MySQL)

    MySQL数据库 JDBC 编程(Java 连接 MySQL)

    这篇文章主要介绍了MySQL数据库 JDBC 编程Java 连接 MySQL,在 Java 中,这样的封装就是由 Java 标准库来完成的,封装出了一套统一的数据库 API 称为 JDBC,下面来看文章的详细介绍吧
    2021-12-12
  • mysql5.7使用binlog 恢复数据的方法

    mysql5.7使用binlog 恢复数据的方法

    MySQL的binlog日志是MySQL日志中非常重要的一种日志,记录了数据库所有的DML操作,那么怎样通过binlog 恢复数据,本文就详细的来介绍一下
    2021-06-06
  • Mysql数据库分库分表全面瓦解

    Mysql数据库分库分表全面瓦解

    物理服务机的CPU、内存、存储设备、连接数等资源有限,某个时段大量连接同时执行操作,会导致数据库在处理上遇到性能瓶颈。为了解决这个问题,行业先驱门充分发扬了分而治之的思想,对大库表进行分割
    2022-01-01
  • 安装Mysql找不到Bin文件的问题解决

    安装Mysql找不到Bin文件的问题解决

    在解压MySQL压缩包后,有时会发现没有bin目录,本文主要介绍了安装Mysql找不到Bin文件的问题解决,具有一定的参考价值,感兴趣的可以了解一下
    2024-07-07
  • MySQL导致索引失效的几种情况

    MySQL导致索引失效的几种情况

    本文主要介绍了MySQL导致索引失效的几种情况,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • MySQL 5.7.17压缩版安装笔记

    MySQL 5.7.17压缩版安装笔记

    这篇文章主要介绍了MySQL 5.7.17压缩版安装笔记,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • MySQL sysdate()函数的具体使用

    MySQL sysdate()函数的具体使用

    本文主要介绍了MySQL sysdate()函数的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07

最新评论