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

Bagaimana untuk Menukar Lajur Datetime UTC kepada Waktu Tempatan dalam Penyata Pilih SQL?

Patricia Arquette
Patricia Arquetteasal
2025-01-17 04:27:10754semak imbas

How to Convert UTC Datetime Columns to Local Time in SQL Select Statements?

Menukar Lajur Waktu Tarikh UTC kepada Waktu Tempatan dalam Penyata Pilih SQL

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.

Kaedah Penukaran

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

Pertimbangan

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.

Pelarasan DST

Kaedah yang disediakan tidak mengambil kira Daylight Menjimatkan Masa (DST). Jika pelarasan DST diperlukan, rujuk soalan berikut:

  • [Cara mencipta fungsi Mula dan Tamat Masa Siang dalam SQL Server](https://stackoverflow.com/questions/2614192/how -untuk-membuat-siang-jimat-masa-mula-dan-fungsi-akhir-dalam-sql-server)

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!

Kenyataan:
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