当前位置: 代码网 > it编程>数据库>Mysql > MySQL中根据出生日期计算年龄两种方法

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

2024年06月10日 Mysql 我要评论
创建student表mysql> create table student(

创建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根据出生日期计算年龄内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com