Penso che il tuo problema non sia CONVERT_TZ
, ma FROM_UNIXTIME
.
FROM_UNIXTIME
accetta un intero come argomento, il che significa 32 bit.
Se prendi il timestamp Unix di oggi:1480546792
, spostato a destra di 24 bit - stai appena superando il limite di 32 bit per un parametro valido su unix_time
.
from_unixtime
può gestire solo parametri fino a 2147483647
- Il che significa che funziona fino al 2038-01-19 04:14:07
Anch'io ho riscontrato questo problema e dal 2002 una soluzione è "in fase di sviluppo".
Fino a quando non sarà finalmente risolto, dovresti utilizzare una soluzione alternativa, utilizzando date_add
. Invece di
from_unixtime (x)
usa
date_add(from_unixtime(0), INTERVAL x second)
Risultato/i:
SELECT from_unixtime (2147483647); //2038-01-19 04:14:07
SELECT from_unixtime (2147483648); //NULL
SELECT date_add(from_unixtime(0), Interval 2147483647 second) //2038-01-19 04:14:07
SELECT date_add(from_unixtime(0), Interval 2147483648 second) //2038-01-19 04:14:08