在MySQL中从日期算起年龄
从MySQL数据库获取数据后,无需计算自事件和事件已经过去了多少年,或已有多少年了,您可以使用以下查询在MySQL端转换日期。它通过从给定日期减去当前日期并将其格式化为年份来工作。将给定值添加到0,将给定的字符串DATE_FORMAT()转换为整数。
SELECTDATE_FORMAT(FROM_DAYS(TO_DAYS(now())-TO_DAYS('2000-07-2309:20:59')),'%Y')+0;
这样得到的结果为8。您还可以仅将年,月和日的字符串传递给该函数。
SELECTDATE_FORMAT(FROM_DAYS(TO_DAYS(now())-TO_DAYS('2000-07-23')),'%Y')+0;
得出38的结果。
该函数要求找到格式正确的MySQL日期字符串,否则将产生错误。此函数中使用以下字符串。
SELECTDATE_FORMAT(FROM_DAYS(TO_DAYS(now())-TO_DAYS('13/01/1970')),'%Y')+0;
除了产生NULL返回值外,还会产生以下错误。
Truncatedincorrectdatetimevalue:'13/01/1970'
最后,此查询仅适用于年份的%Y格式字符串(以4位数字表示),而其他日期格式字符串则没有成功。