Apabila melaksanakan pertanyaan pilihan SQL, mungkin perlu menukar lajur waktu tarikh UTC kepada waktu tempatan untuk memudahkan lebih mudah tafsiran dan paparan. Penukaran ini boleh dicapai tanpa mengubah suai pangkalan data atau menggunakan kod luaran.
Dalam SQL Server 2008 atau lebih baru, sintaks berikut boleh digunakan:
SELECT CONVERT(datetime, SWITCHOFFSET(CONVERT(datetimeoffset, MyTable.UtcColumn), DATENAME(TzOffset, SYSDATETIMEOFFSET()))) AS ColumnInLocalTime FROM MyTable
Alternatif yang lebih pendek ialah:
SELECT DATEADD(mi, DATEDIFF(mi, GETUTCDATE(), GETDATE()), MyTable.UtcColumn) AS ColumnInLocalTime FROM MyTable
Ia penting untuk mengelak daripada menggunakan penolakan (-) untuk mengira perbezaan tarikh, kerana pendekatan ini boleh membawa kepada keputusan yang tidak tepat disebabkan oleh operasi bukan atom.
Kaedah yang disediakan tidak mengambil kira Daylight Menjimatkan Masa (DST). Jika pelarasan DST diperlukan, rujuk soalan berikut:
Atas ialah kandungan terperinci Bagaimana untuk Menukar Lajur Datetime UTC kepada Waktu Tempatan dalam Penyata Pilih SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!