Я сделал такой запрос. За исключением дня, все они рассчитывают правильно. Как это исправить?
SELECT IF(TIMESTAMPDIFF(YEAR, '2017-10-13 16:57:27', NOW()) > 0,
CONCAT(
TIMESTAMPDIFF(YEAR, '2011-01-19 16:57:27', NOW()), ' yıl ',
MOD(TIMESTAMPDIFF(MONTH, '2011-01-19 16:57:27', NOW()), 12), ' ay ',
FLOOR(MOD(TIMESTAMPDIFF(DAY, '2011-01-19 16:57:27', NOW()), 30.4375)), ' gün ',
MOD(TIMESTAMPDIFF(HOUR, '2011-01-19 16:57:27', NOW()), 24), ' saat ',
MOD(TIMESTAMPDIFF(MINUTE, '2011-01-19 16:57:27', NOW()), 60), ' dakika ',
MOD(TIMESTAMPDIFF(SECOND, '2011-01-19 16:57:27', NOW()), 60), ' saniye'
),
IF(MOD(TIMESTAMPDIFF(MONTH, '2011-01-19 16:57:27', NOW()), 12) > 0,
CONCAT(
MOD(TIMESTAMPDIFF(MONTH, '2011-01-19 16:57:27', NOW()), 12), ' ay ',
FLOOR(MOD(TIMESTAMPDIFF(DAY, '2011-01-19 16:57:27', NOW()), 30.4375)), ' gün ',
MOD(TIMESTAMPDIFF(HOUR, '2011-01-19 16:57:27', NOW()), 24), ' saat ',
MOD(TIMESTAMPDIFF(MINUTE, '2011-01-19 16:57:27', NOW()), 60), ' dakika ',
MOD(TIMESTAMPDIFF(SECOND, '2011-01-19 16:57:27', NOW()), 60), ' saniye'
),
IF(FLOOR(MOD(TIMESTAMPDIFF(DAY, '2011-01-19 16:57:27', NOW()), 30.4375)) > 0,
CONCAT(
FLOOR(MOD(TIMESTAMPDIFF(DAY, '2011-01-19 16:57:27', NOW()), 30.4375)), ' gün ',
MOD(TIMESTAMPDIFF(HOUR, '2011-01-19 16:57:27', NOW()), 24), ' saat ',
MOD(TIMESTAMPDIFF(MINUTE, '2011-01-19 16:57:27', NOW()), 60), ' dakika ',
MOD(TIMESTAMPDIFF(SECOND, '2011-01-19 16:57:27', NOW()), 60), ' saniye'
),
IF(MOD(TIMESTAMPDIFF(HOUR, '2011-01-19 16:57:27', NOW()), 24) > 0,
CONCAT(
MOD(TIMESTAMPDIFF(HOUR, '2011-01-19 16:57:27', NOW()), 24), ' saat ',
MOD(TIMESTAMPDIFF(MINUTE, '2011-01-19 16:57:27', NOW()), 60), ' dakika ',
MOD(TIMESTAMPDIFF(SECOND, '2011-01-19 16:57:27', NOW()), 60), ' saniye'
),
IF(MOD(TIMESTAMPDIFF(MINUTE, '2011-01-19 16:57:27', NOW()), 60) > 0,
CONCAT(
MOD(TIMESTAMPDIFF(MINUTE, '2011-01-19 16:57:27', NOW()), 60), ' dakika ',
MOD(TIMESTAMPDIFF(SECOND, '2011-01-19 16:57:27', NOW()), 60), ' saniye'
),
IF(MOD(TIMESTAMPDIFF(SECOND, '2011-01-19 16:57:27', NOW()), 60) > 0,
CONCAT(
MOD(TIMESTAMPDIFF(SECOND, '2011-01-19 16:57:27', NOW()), 60), ' saniye'
),
'Yok'))))))
AS time
Результат: 9 yıl 4 ay 28 gün 18 saat 6 dakika 13 saniye
Ожидается: 9 yıl 4 ay 29 gün 18 saat 6 dakika 13 saniye