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;

相关推荐
岁岁种桃花儿1 小时前
MySQL从入门到精通系列:InnoDB记录存储结构
数据库·mysql
jiunian_cn3 小时前
【Redis】hash数据类型相关指令
数据库·redis·哈希算法
冉冰学姐3 小时前
SSM在线影评网站平台82ap4(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm框架·在线影评平台·影片分类
Exquisite.4 小时前
企业高性能web服务器(4)
运维·服务器·前端·网络·mysql
知识分享小能手4 小时前
SQL Server 2019入门学习教程,从入门到精通,SQL Server 2019数据库的操作(2)
数据库·学习·sqlserver
踩坑小念5 小时前
秒杀场景下如何处理redis扣除状态不一致问题
数据库·redis·分布式·缓存·秒杀
萧曵 丶5 小时前
MySQL 语句书写顺序与执行顺序对比速记表
数据库·mysql
Wiktok6 小时前
MySQL的常用数据类型
数据库·mysql
曹牧6 小时前
Oracle 表闪回(Flashback Table)
数据库·oracle
J_liaty7 小时前
Redis 超详细入门教程:从零基础到实战精通
数据库·redis·缓存