MySQL中根据出生日期计算年龄两种方法
作者:oceanexe
创建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根据出生日期计算年龄内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!