Anda sedang bekerja dengan pertanyaan MySQL yang mengandungi lajur "masa paparan" yang menyimpan cap masa dalam UTC. Walau bagaimanapun, anda perlu memaparkan cap masa dalam zon waktu tempatan. Fungsi CONVERT_TZ() tidak berfungsi seperti yang diharapkan.
Untuk menukar cap waktu UTC kepada zon waktu tempatan menggunakan fungsi CONVERT_TZ(), anda mesti menentukan singkatan zon waktu bagi kedua-duanya UTC dan zon waktu tempatan. Sintaks yang betul adalah seperti berikut:
SELECT CONVERT_TZ(displaytime, 'UTC', 'LOCAL')
Contoh Pertanyaan
WHERE displaytime >= '2012-12-01 00:00:00' AND displaytime <= '2013-02-22 23:59:59' AND ct.organizationId IN ( SELECT t.organizationId FROM organization_ AS t JOIN organization_ AS p ON t.treePath LIKE CONCAT(p.treePath, '%') WHERE p.organizationId = 10707 )
Pertanyaan Diubahsuai:
WHERE CONVERT_TZ(displaytime, 'UTC', 'LOCAL') >= '2012-12-01 00:00:00' AND CONVERT_TZ(displaytime, 'UTC', 'LOCAL') <= '2013-02-22 23:59:59' AND ct.organizationId IN ( SELECT t.organizationId FROM organization_ AS t JOIN organization_ AS p ON t.treePath LIKE CONCAT(p.treePath, '%') WHERE p.organizationId = 10707 )
Jika CONVERT_TZ() tidak berfungsi, ia mungkin disebabkan oleh tiada atau kosong jadual zon waktu. Anda boleh memulakan jadual zon waktu menggunakan program mysql_tzinfo_to_sql.
Atas ialah kandungan terperinci Bagaimana untuk Menukar Tarikh UTC ke Zon Waktu Tempatan dalam MySQL Select Query?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!