Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menukar Lajur Datetime UTC kepada Waktu Tempatan dalam SQL?
Menukar Waktu Tarikh UTC kepada Waktu Setempat dengan Cekap dalam Pertanyaan SQL
Banyak sistem pangkalan data menyimpan cap masa dalam UTC untuk konsistensi. Panduan ini menunjukkan cara untuk menukar lajur waktu tarikh UTC ini kepada waktu tempatan terus dalam pertanyaan SQL anda, menghapuskan keperluan untuk kod luaran.
SQL Server 2008 dan Kemudian:
Pendekatan ini memanfaatkan fungsi SWITCHOFFSET
untuk penukaran yang tepat:
<code class="language-sql">SELECT CONVERT(datetime, SWITCHOFFSET(CONVERT(datetimeoffset, MyTable.UtcColumn), DATENAME(TzOffset, SYSDATETIMEOFFSET()))) AS ColumnInLocalTime FROM MyTable</code>
Kaedah Alternatif (Verbose):
Kaedah yang lebih mudah, walaupun kurang elegan, menggunakan DATEADD
dan DATEDIFF
:
<code class="language-sql">SELECT DATEADD(mi, DATEDIFF(mi, GETUTCDATE(), GETDATE()), MyTable.UtcColumn) AS ColumnInLocalTime FROM MyTable</code>
Pertimbangan Utama:
-
) boleh membuahkan hasil yang tidak dapat diramalkan kerana keadaan perlumbaan yang berpotensi. Kaedah di atas mengelakkan masalah ini.Maklumat ini memberi kuasa kepada anda untuk melakukan penukaran UTC-ke-tempatan yang cekap dan tepat secara terus dalam pertanyaan SQL anda.
Atas ialah kandungan terperinci Bagaimana untuk Menukar Lajur Datetime UTC kepada Waktu Tempatan dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!