Tukar lajur waktu tarikh UTC kepada waktu tempatan dalam pertanyaan SQL
Mengendalikan waktu tarikh UTC dalam pertanyaan SQL kadangkala boleh menyusahkan, terutamanya apabila anda perlu memaparkannya dalam zon waktu tempatan anda. Terdapat teknik mudah untuk menukar waktu tarikh UTC kepada waktu tempatan, menghapuskan keperluan untuk penukaran berasaskan kod.
Penyelesaian untuk SQL Server 2008 dan ke atas:
Untuk SQL Server 2008 atau lebih tinggi, gunakan pertanyaan berikut:
<code class="language-sql">SELECT CONVERT(datetime, SWITCHOFFSET(CONVERT(datetimeoffset, MyTable.UtcColumn), DATENAME(TzOffset, SYSDATETIMEOFFSET()))) AS ColumnInLocalTime FROM MyTable</code>
Sintaks alternatif:
Sebagai alternatif, anda boleh menggunakan versi ringkas berikut:
<code class="language-sql">SELECT DATEADD(mi, DATEDIFF(mi, GETUTCDATE(), GETDATE()), MyTable.UtcColumn) AS ColumnInLocalTime FROM MyTable</code>
Nota: Elakkan menolak tarikh
Adalah penting untuk ambil perhatian bahawa menggunakan - pengendali untuk menolak tarikh adalah tidak disyorkan kerana ini boleh membawa kepada keputusan yang tidak dapat ditentukan disebabkan oleh keadaan perlumbaan.
Pertimbangkan Waktu Penjimatan Siang (DST)
Penyelesaian yang disediakan ini tidak mengambil kira pelarasan DST. Jika perlu, sila rujuk soalan Limpahan Tindanan berikut:
https://www.php.cn/link/95743904f0de5aa6327dee27efdc81b4
Atas ialah kandungan terperinci Bagaimana untuk Menukar UTC Datetime kepada Waktu Tempatan dalam SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!