Jeg tror, dit problem ikke er CONVERT_TZ
, men FROM_UNIXTIME
.
FROM_UNIXTIME
tager et heltal som argument - hvilket betyder 32 bit.
Hvis du tager dagens unix-tidsstempel:1480546792
, flyttet til højre 24 bit - du overskrider lige 32-bit grænsen for en gyldig parameter på unix_time
.
from_unixtime
kan kun håndtere parametre op til 2147483647
- Hvilket betyder, det virker indtil 2038-01-19 04:14:07
Jeg har også stødt på dette problem, og siden 2002 er en rettelse til dette "under udvikling".
Indtil det endelig er løst, bør du bruge en løsning ved at bruge date_add
. I stedet for
from_unixtime (x)
brug
date_add(from_unixtime(0), INTERVAL x second)
Resultat(er):
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