Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menukar Lajur Datetime UTC kepada Waktu Setempat dalam Penyata SQL SELECT?

Bagaimana untuk Menukar Lajur Datetime UTC kepada Waktu Setempat dalam Penyata SQL SELECT?

Mary-Kate Olsen
Lepaskan: 2025-01-17 04:42:09
asal
627 orang telah melayarinya

How to Convert a UTC Datetime Column to Local Time in SQL SELECT Statements?

Tukar lajur tarikh dan masa UTC kepada waktu tempatan dalam pernyataan SQL SELECT

Apabila melaksanakan pertanyaan SQL SELECT, mungkin perlu menukar lajur waktu tarikh UTC kepada waktu tempatan untuk meningkatkan kebolehgunaan dan meningkatkan ketepatan perwakilan data. Ini boleh dicapai melalui teknik khusus untuk versi SQL yang digunakan.

Untuk SQL Server 2008 atau lebih tinggi:

  • Gunakan fungsi CONVERT digabungkan dengan SWITCHOFFSET dan CONVERT(datetimeoffset) untuk menukar lajur UTC kepada waktu tempatan, dengan mengambil kira offset zon waktu sistem.

Sintaks SQL:

<code class="language-sql">SELECT CONVERT(datetime, 
               SWITCHOFFSET(CONVERT(datetimeoffset, 
                                    MyTable.UtcColumn), 
                            DATENAME(TzOffset, SYSDATETIMEOFFSET()))) 
       AS ColumnInLocalTime
FROM MyTable</code>
Salin selepas log masuk
  • Sebagai alternatif, gunakan fungsi DATEADD yang lebih ringkas untuk penukaran.

Sintaks SQL:

<code class="language-sql">SELECT DATEADD(mi, DATEDIFF(mi, GETUTCDATE(), GETDATE()), MyTable.UtcColumn) 
       AS ColumnInLocalTime
FROM MyTable</code>
Salin selepas log masuk

Nota:

Elakkan menggunakan tanda tolak - untuk menolak tarikh bagi penukaran, kerana ini mungkin membawa kepada keputusan yang tidak dapat diramalkan disebabkan keadaan perlumbaan antara sistem dan waktu tarikh tempatan.

Nota tambahan:

Kaedah yang disediakan tidak mengambil kira waktu penjimatan siang (DST). Untuk pelarasan DST, sila rujuk topik Limpahan Tindanan:

"Cara mencipta fungsi permulaan dan tamat masa penjimatan siang dalam SQL Server"

Atas ialah kandungan terperinci Bagaimana untuk Menukar Lajur Datetime UTC kepada Waktu Setempat dalam Penyata SQL SELECT?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan