Saya pikir masalah Anda bukan CONVERT_TZ
, tapi FROM_UNIXTIME
.
FROM_UNIXTIME
mengambil Integer sebagai argumen - yang berarti 32 bit.
Jika Anda menggunakan stempel waktu unix hari ini:1480546792
, digeser ke kanan 24 bit - Anda baru saja melampaui batas 32-bit untuk parameter yang valid pada unix_time
.
from_unixtime
hanya dapat menangani parameter hingga 2147483647
- Artinya, ini berfungsi hingga 2038-01-19 04:14:07
Saya juga mengalami masalah ini, dan sejak 2002 perbaikan untuk ini "sedang dikembangkan".
Sampai akhirnya diselesaikan, Anda harus menggunakan solusi, menggunakan date_add
. Alih-alih
from_unixtime (x)
gunakan
date_add(from_unixtime(0), INTERVAL x second)
Hasil:
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