Myslím, že váš problém není CONVERT_TZ
, ale FROM_UNIXTIME
.
FROM_UNIXTIME
bere jako argument celé číslo - což znamená 32 bitů.
Pokud použijete dnešní unixové časové razítko:1480546792
, posunuto doprava o 24 bitů – právě překračujete 32bitový limit pro platný parametr na unix_time
.
from_unixtime
dokáže zpracovat pouze parametry do 2147483647
- Což znamená, že to funguje až do 2038-01-19 04:14:07
S tímto problémem jsem se také setkal a od roku 2002 je oprava tohoto problému "ve vývoji".
Dokud to nebude konečně vyřešeno, měli byste použít náhradní řešení pomocí date_add
. Místo
from_unixtime (x)
použití
date_add(from_unixtime(0), INTERVAL x second)
Výsledek(y):
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