I am performing this script:

Choose EXTRACT(HOUR FROM TIMEDIFF('2009-12-12 13:13:13', NOW()))

And i am getting: -838. Is the farthest MySQL can move up to when removing?

You are able to overcome this limit having a workaround

   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

This is actually a limitation from the [cde] type.

Automatically, values that lie outdoors time range but they are otherwise legal are clipped towards the nearest endpoint from the range. For instance, '-850:00:00' and '850:00:00' are transformed into '-838:59:59' and '838:59:59'. Illegal TIME values are transformed into '00:00:00'. Observe that because '00:00:00' is itself a legitimate TIME value, there's not a way to inform, from the worth of '00:00:00' saved inside a table, if the original value was specified as '00:00:00' or whether or not this was illegal.