• <small id='vHs2A'></small><noframes id='vHs2A'>

    <i id='vHs2A'><tr id='vHs2A'><dt id='vHs2A'><q id='vHs2A'><span id='vHs2A'><b id='vHs2A'><form id='vHs2A'><ins id='vHs2A'></ins><ul id='vHs2A'></ul><sub id='vHs2A'></sub></form><legend id='vHs2A'></legend><bdo id='vHs2A'><pre id='vHs2A'><center id='vHs2A'></center></pre></bdo></b><th id='vHs2A'></th></span></q></dt></tr></i><div id='vHs2A'><tfoot id='vHs2A'></tfoot><dl id='vHs2A'><fieldset id='vHs2A'></fieldset></dl></div>

      • <bdo id='vHs2A'></bdo><ul id='vHs2A'></ul>
      <tfoot id='vHs2A'></tfoot>
        <legend id='vHs2A'><style id='vHs2A'><dir id='vHs2A'><q id='vHs2A'></q></dir></style></legend>

        以整数形式获取 MySQL 中两个日期之间的年差

        Get difference in years between two dates in MySQL as an integer(以整数形式获取 MySQL 中两个日期之间的年差)
        <tfoot id='Kf5C7'></tfoot>

          <small id='Kf5C7'></small><noframes id='Kf5C7'>

              <legend id='Kf5C7'><style id='Kf5C7'><dir id='Kf5C7'><q id='Kf5C7'></q></dir></style></legend>

              • <i id='Kf5C7'><tr id='Kf5C7'><dt id='Kf5C7'><q id='Kf5C7'><span id='Kf5C7'><b id='Kf5C7'><form id='Kf5C7'><ins id='Kf5C7'></ins><ul id='Kf5C7'></ul><sub id='Kf5C7'></sub></form><legend id='Kf5C7'></legend><bdo id='Kf5C7'><pre id='Kf5C7'><center id='Kf5C7'></center></pre></bdo></b><th id='Kf5C7'></th></span></q></dt></tr></i><div id='Kf5C7'><tfoot id='Kf5C7'></tfoot><dl id='Kf5C7'><fieldset id='Kf5C7'></fieldset></dl></div>
                  <tbody id='Kf5C7'></tbody>
                • <bdo id='Kf5C7'></bdo><ul id='Kf5C7'></ul>
                  本文介绍了以整数形式获取 MySQL 中两个日期之间的年差的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我正在尝试计算一个人在数据库中的年龄.
                  让我们假设有这个简单的表:

                  student(id,birth_date);

                  其中 id 是主键(确实该表更复杂,但我已将其简化).
                  我想知道一个人的年龄:

                  select id, datediff(curdate(),birth_date)来自学生

                  但它以天为单位返回结果,而不是以年为单位.我可以将其除以 365:

                  select id, datediff(curdate(),birth_date)/365来自学生

                  但它返回一个浮点值,我想要一个整数.
                  所以我可以计算年份:

                  select id, year(curdate())-year(birth_date)来自学生

                  但是有一个问题:比如现在是五月,如果一个人战争出生于1970年六月,他还有31岁而不是32岁,但表达式返回32.
                  我无法解决这个问题,有人可以帮助我吗?

                  解决方案

                  对于遇到此问题的任何人:

                  另一种方法是:

                  SELECT TIMESTAMPDIFF(YEAR, date_of_birth, CURDATE()) 作为学生的差异

                  对于月份的差异,将YEAR替换为MONTH,对于天数,将YEAR替换为DAY

                  希望有帮助!

                  I am trying to calculate how old is a person in a database.
                  Let's suppose to have this simple table:

                  student(id, birth_date);
                  

                  Where id is the primary key (truly the table is more complex but I have simplified it).
                  I want to get how much old is a single person:

                  select id, datediff(curdate(),birth_date) 
                  from student
                  

                  But it returns a result in days, and not in years.I could divide it by 365:

                  select id, datediff(curdate(),birth_date) / 365
                  from student
                  

                  But it returns a floating point value, and I want an integer.
                  So I could calculate the years:

                  select id, year(curdate())-year(birth_date) 
                  from student
                  

                  But there is a problem: for instance now is May, if a person war born in June, 1970 he has still 31 years and not 32, but the expression returns 32.
                  I can't come out of this problem, can someone help me?

                  解决方案

                  For anyone who comes across this:

                  another way this can be done is:

                  SELECT TIMESTAMPDIFF(YEAR, date_of_birth, CURDATE()) AS difference FROM student
                  

                  For differences in months, replace YEAR with MONTH, and for days replace YEAR with DAY

                  Hope that helps!

                  这篇关于以整数形式获取 MySQL 中两个日期之间的年差的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                  相关文档推荐

                  Bogus foreign key constraint fail(虚假外键约束失败)
                  how to get last insert id after insert query in codeigniter active record(如何在codeigniter活动记录中插入查询后获取最后一个插入ID)
                  Force InnoDB to recheck foreign keys on a table/tables?(强制 InnoDB 重新检查表/表上的外键?)
                  How to auto generate migrations with Sequelize CLI from Sequelize models?(如何使用 Sequelize CLI 从 Sequelize 模型自动生成迁移?)
                  Clear MySQL query cache without restarting server(无需重启服务器即可清除 MySQL 查询缓存)
                  ALTER TABLE to add a composite primary key(ALTER TABLE 添加复合主键)

                    <tfoot id='BOUWA'></tfoot>
                      <bdo id='BOUWA'></bdo><ul id='BOUWA'></ul>

                            <tbody id='BOUWA'></tbody>

                        • <small id='BOUWA'></small><noframes id='BOUWA'>

                            <i id='BOUWA'><tr id='BOUWA'><dt id='BOUWA'><q id='BOUWA'><span id='BOUWA'><b id='BOUWA'><form id='BOUWA'><ins id='BOUWA'></ins><ul id='BOUWA'></ul><sub id='BOUWA'></sub></form><legend id='BOUWA'></legend><bdo id='BOUWA'><pre id='BOUWA'><center id='BOUWA'></center></pre></bdo></b><th id='BOUWA'></th></span></q></dt></tr></i><div id='BOUWA'><tfoot id='BOUWA'></tfoot><dl id='BOUWA'><fieldset id='BOUWA'></fieldset></dl></div>
                          • <legend id='BOUWA'><style id='BOUWA'><dir id='BOUWA'><q id='BOUWA'></q></dir></style></legend>