我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Mysql中如何通过生日计算年龄

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Mysql中如何通过生日计算年龄

这篇文章主要为大家展示了“Mysql中如何通过生日计算年龄”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Mysql中如何通过生日计算年龄”这篇文章吧。

方法一

SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS(birthday)), '%Y')+0 AS age

方法一,作者也说出了缺陷,就是当日期为未来日期时结果为0,而不是负数;这里使用了5个函数和两个运算符。

方法二

SELECT DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(birthday, '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(birthday, '00-%m-%d')) AS age

方法二,解决了方法一为负数的问题,但看起来更复杂;这里使用了6个函数和3个运算符。

看了这篇贴子后,我就晕了,怎么会这么复杂,以前用Sql Server很简单就可以了。我坚信一定有简单高效的方法。很快就找到了根据以上方法改良后的方法。

改良后方法一和方法二

SELECT year( from_days( datediff( now( ), birthdate)));
SELECT YEAR(CURDATE())-YEAR(birthday)-(RIGHT(CURDATE(),5)<RIGHT(birthday,5));

改良后的方法一,少了一个函数和一个运算符,当日期为未来日期时计算结果还是为0;
改良后的方法二,还是6个函数和3个运算符,看起来简单些;取日期的右边五位,当日期格式为‘2013-01-01'时取到的是‘01-01',没有问题;当日期格式为‘2013-1-1'缩写格式时,取右边的五位取出的是‘3-1-1',会导致出错。

然后自己根据MYSQL的帮助文档中的日期函数想到了第三种方法:

方法三

SELECT FLOOR(DATEDIFF(CURDATE(), @birthday)/365.2422)

取生日和当前日期之前的天数除以一年的实际天数(365天5小时48分46秒),然后取整。这样只用了三个函数和一个运算符就搞定了。

然后,很快在国外网站找到了第四种方法:

方法四

 SELECT TIMESTAMPDIFF(YEAR, @birthday, CURDATE())

这种方法只用了两个函数就搞定了,应该是最佳方法了。

测试了一下以上四种方法,假如当前日期为'2017-1-13',当生日为‘2013-1-14'时,还差一天就要过生日了,离4岁只 差一天了,结果还是3岁,感觉不是很合理;把方法三改造一下,四舍五入得到方法五:

方法五

SELECT ROUND(DATEDIFF(CURDATE(), @birthday)/365.2422)

这样计算出的年龄离实际的周岁最接近了,但可能方法四是最符合年龄定义的了。

以上是“Mysql中如何通过生日计算年龄”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Mysql中如何通过生日计算年龄

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何在MySQL中从出生日期计算年龄?

我们可以计算从出生日期算起的年龄,如下 -mysql> SET @dob = 1984-01-17;Query OK, 0 rows affected (0.00 sec)上面的查询将在“dob”变量中传递值“1984-01-17”。然后
2023-10-22

mysql中通过身份证号计算实时年龄

YEAR(now())- YEAR(substring(t.card_id,7,8))  age, 用来计算年龄
mysql中通过身份证号计算实时年龄
2018-05-16

在 MySQL 中,我们如何通过提供年份、周数和星期几来计算日期?

我们可以按如下方式计算日期 -mysql> SET @year=2017, @week=15, @day=4;Query OK, 0 rows affected (0.00 sec)上面的查询将分别在“year”、“week”和“day”
2023-10-22

c语言如何实现根据用户输入的出生年份并计算出当前年龄

这篇文章主要讲解了“c语言如何实现根据用户输入的出生年份并计算出当前年龄”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“c语言如何实现根据用户输入的出生年份并计算出当前年龄”吧!询问用户的出生
2023-07-05

我们如何从 MySQL 表中找到年龄大于 30 岁的员工,并提供表中唯一的出生日期?

为了理解这个概念,我们将使用表格‘emp_tbl’中的数据如下−mysql> Select * from emp_tbl;+--------+------------+| Name | DOB |+--------+
2023-10-22

计算机中批处理如何实现万年日历

这篇文章主要介绍了计算机中批处理如何实现万年日历,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。核心源码:: 月历查询工具 最初发表于CN-DOS:: 原创:foxjl 更新:
2023-06-08

Linux中mysql如何通过存储过程实现批量生成记录

这篇文章将为大家详细讲解有关Linux中mysql如何通过存储过程实现批量生成记录,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Linux 下mysql通过存储过程实现批量生成记录在开发中有一个这样的需求
2023-06-09

我们如何使用函数来计算MySQL中的日期?

在 MySQL 中,我们可以使用以下函数来计算日期 -CURDATE() 函数 - 基本上它返回计算机的当前日期。YEAR() 函数 - 它返回指定日期的年份。MONTH () 函数 - 返回指定日期的月份。DAY() 函数 - 返回指定日
2023-10-22

计算机中如何通过批处理关闭135 137 445等端口

这篇文章将为大家详细讲解有关计算机中如何通过批处理关闭135 137 445等端口,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。主要是通过bat操作防火墙添加规则,一般是tcp与udp。日前,全球近百个国
2023-06-08

中小企业用户如何通过云计算提升业务效率

中小企业用户如何通过云计算提升业务效率?中小企业是经济中不可或缺的一部分,它们在创造就业机会、推动经济增长、满足市场需求等方面发挥着重要的作用。然而,由于资源有限和竞争激烈,许多中小企业往往面临着提高业务效率、降低成本的挑战。云计算作为一种强大的技术工具,为中小企业提供了提升业务效率的机会。
中小企业用户如何通过云计算提升业务效率
2024-01-23

如何通过索引优化PHP与MySQL的计算字段和JSON数据的查询?

引言:在PHP和MySQL开发中,经常会涉及到计算字段和JSON数据的查询需求。然而,由于这两种查询都会带来较高的计算量和数据处理复杂度,如果不加以优化,可能会导致性能下降。本文将介绍如何通过索引优化PHP与MySQL的计算字段和JSON数
2023-10-21

如何计算 MySQL 中两个指定日期之间的完整 24 小时天数?

在 DATEDIFF() 函数中,仅使用值的日期部分进行计算,因此我们可以使用 TIMESTAMPDIFF() 函数来计算两个指定日期之间的完整 24 小时天数。例如,如果我们想要查找 '2017-05-27 11:59:00' 和 201
2023-10-22

如何在MySQL中设计仓库管理系统的表结构来跟踪库存过期日期?

如何在MySQL中设计仓库管理系统的表结构来跟踪库存过期日期?库存过期日期是仓库管理系统中一个重要的信息,它能帮助我们及时处理过期商品,防止损失和浪费。在MySQL中设计适合的表结构来跟踪库存过期日期非常重要。本文将介绍如何设计这样的表结构
如何在MySQL中设计仓库管理系统的表结构来跟踪库存过期日期?
2023-10-31

编程热搜

目录