Я выполняю этот скрипт:
SELECT EXTRACT(HOUR FROM TIMEDIFF('2009-12-12 13:13:13', NOW()));
И я получаю: -838.Это самый дальний MySQL, до которого можно добраться при извлечении?
Вы можете преодолеть этот предел с помощью обходного пути
select datediff(now(),'2009-12-12 13:13:13') * 24 + extract(hour from now()) - extract(hour from '2009-12-12 13:13:13') as hour_diff
Это действительно ограничение типа TIME.
TIME
По умолчанию значения, которые находятся вне диапазона TIME, но в остальном допустимы, обрезаются до ближайшей конечной точкииз диапазона.Например, «-850: 00: 00» и «850: 00: 00» преобразуются в «-838: 59: 59» и «838: 59: 59».Недопустимые значения ВРЕМЕНИ преобразуются в «00: 00: 00».Обратите внимание, что, поскольку «00: 00: 00» само по себе является допустимым значением ВРЕМЕНИ, из значения «00: 00: 00», хранящегося в таблице, невозможно определить, было ли исходное значение указано как «00:00:00 'или было ли это незаконно.