我需要在某个时间点找出一个人的年龄.我有DOB和这个’时间点’作为unix时间戳.
我可以在那时减去它们以便在几秒钟内获得它们的年龄,但是…我没有看到任何MySQL functions将其格式化为数年和数月.
我怎样才能做到这一点?
具体来说,我想要的格式是5y 6m.
解决方法:
这是您的查询:
SELECT CONCAT(
TIMESTAMPDIFF(YEAR, FROM_UNIXTIME(`dob`), FROM_UNIXTIME(`point_in_time`)),
'y ',
MOD(TIMESTAMPDIFF(MONTH, FROM_UNIXTIME(`dob`), FROM_UNIXTIME(`point_in_time`)), 12),
'm'
) `age`
...
...
另一个可能是:
SELECT CONCAT(
FLOOR((`point_in_time` - `dob`) / 31536000),
'y ',
FLOOR(MOD((`point_in_time` - `dob`) / 31536000 * 12, 12)),
'm'
) `age`
...
...
希望这可以帮助?
标签:mysql
来源: https://codeday.me/bug/20190521/1148229.html