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

  • A+
所属分类:SQL技巧

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

使用SQL语句计算年龄,在事务处理和日期计算中,较为常见,下面这篇文章主要给大家介绍了关于MySQL中根据出生日期计算年龄的两种方法,文中通过代码介绍的非常详细,需要的朋友可以参考下。

创建student表

1
2
3
4
5
6
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表中插入数据

1
2
3
4
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)

查询表中数据

1
mysql> select from student;

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

查询每个人的年龄

方法一:

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;

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

方法二:

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知道年龄求出生日期

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
-- 获取当前日期和年龄
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中根据出生日期计算年龄两种方法的文章就介绍到这了。

 

学习资料见知识星球。

以上就是今天要分享的技巧,你学会了吗?若有什么问题,欢迎在下方留言。

快来试试吧,小琥 my21ke007。获取 1000个免费 Excel模板福利​​​​!

更多技巧, www.excelbook.cn

欢迎 加入 零售创新 知识星球,知识星球主要以数据分析、报告分享、数据工具讨论为主;

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

你将获得:

1、价值上万元的专业的PPT报告模板。

2、专业案例分析和解读笔记。

3、实用的Excel、Word、PPT技巧。

4、VIP讨论群,共享资源。

5、优惠的会员商品。

6、一次付费只需99元,即可下载本站文章涉及的文件和软件。

  • 我的微信
  • weinxin
  • 我的知识星球
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: