【问题标题】:date difference produces wrong output in mysql日期差异在mysql中产生错误的输出
【发布时间】:2020-06-30 18:20:19
【问题描述】:

我有一张名为employee 的表(见图):

Example of table

我试图通过使用以下代码从他们的出生日期中减去当前日期来获得他们的实际年龄:

select datediff(CURDATE(), str_to_date(employee.dob,'%m/%d/%Y')) as age
FROM employee;

输出如下:

18357
273

我的预期输出应该是:

29 
20

请注意:该 dob 以字符串形式存储在表中。

【问题讨论】:

  • 更新您的问题添加适当的数据样本、您的实际结果和您的预期结果
  • DATEDIFF() 函数返回两个日期值之间的天数。你期待什么?
  • 使用日期数据类型存储日期
  • 确实如此。谢谢

标签: mysql sql datetime datediff


【解决方案1】:

尝试这样计算年龄:

SELECT DATE_FORMAT(FROM_DAYS(DATEDIFF(NOW(), str_to_date(dob,'%m/%d/%Y'))), "%Y")+0 AS age 
FROM employee;

Demo

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-22
    • 1970-01-01
    • 2019-09-21
    • 1970-01-01
    • 2014-01-17
    • 2011-04-21
    • 2013-03-10
    • 1970-01-01
    相关资源
    最近更新 更多