Karena saya menemukan pertanyaan ini tidak disadari, bahwa mysql selalu menyimpan waktu di bidang timestamp di UTC tetapi akan ditampilkan (mis. Phpmyadmin) di zona waktu lokal saya ingin menambahkan temuan saya.
Saya memiliki bidang last_modified yang diperbarui secara otomatis, didefinisikan sebagai:
`last_modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
Melihatnya dengan phpmyadmin, sepertinya itu adalah waktu setempat, secara internal itu adalah UTC
SET time_zone = '+04:00'; // or '+00:00' to display dates in UTC or 'UTC' if time zones are installed.
SELECT last_modified, UNIX_TIMESTAMP(last_modified), from_unixtime(UNIX_TIMESTAMP(last_modified), '%Y-%c-%d %H:%i:%s'), CONVERT_TZ(last_modified,@@session.time_zone,'+00:00') as UTC FROM `table_name`
Di sembarang konstelasi, UNIX_TIMESTAMP dan 'sebagai UTC' selalu ditampilkan dalam waktu UTC.
Jalankan ini dua kali, pertama tanpa mengatur time_zone.