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;

相关推荐
m0_591364734 分钟前
JavaScript中Object-hasOwn作为现代安全检测方案
jvm·数据库·python
m0_624578596 分钟前
html标签怎么避免标签嵌套错误_div不能放在p内原因【详解】
jvm·数据库·python
阿维的博客日记14 分钟前
求解深分页问题,last pk适合什么情况
java·mysql·深分页
霸道流氓气质22 分钟前
SpringAIAlibaba整合百炼平台实现多MCP Server调用示例及指定某MCP Server调用示例
数据库
__water25 分钟前
【下载配置Mysql】
mysql
2301_7693406729 分钟前
怎样导出用于负载测试的样本数据_LIMIT限制数据量提取
jvm·数据库·python
2401_850491651 小时前
c++如何通过文件映射mmap在多进程间实现高性能数据共享【进阶】
jvm·数据库·python
iuvtsrt1 小时前
PHP 中高效查找 CSV 行并获取前后指定偏移行的数据
jvm·数据库·python
m0_463672201 小时前
MySQL从库出现大量锁等待怎么办_分析从库执行计划与锁日志
jvm·数据库·python
2301_809204701 小时前
为 Go 语言 WaitGroup.Wait() 添加超时机制的实用方案
jvm·数据库·python