SQL Server: Mengubah Cap Masa UNIX Bigint kepada Nilai DateTime
Panduan ini memperincikan penukaran cap masa UNIX yang besar kepada objek DateTime dalam SQL Server. Proses tersebut memerlukan formula untuk mengambil kira perbezaan masa antara zaman UNIX dan SQL Server.
Kaedah Penukaran:
Pernyataan SQL berikut berkesan melaksanakan penukaran:
<code class="language-sql">SELECT DATEADD(second, [unixtime], '19700101') FROM [Table];</code>
Memahami Formula:
DATEADD
menambah bilangan saat yang ditentukan oleh [unixtime]
(cap masa besar anda) ke zaman UNIX, menghasilkan yang sepadan Nilai DateTime.Masa Zaman Diterangkan:
Masa zaman menandakan bilangan saat berlalu sejak zaman UNIX.
Menangani Isu Tahun 2038:
FungsiSQL Server DATEADD
menggunakan hujah integer untuk bilangan saat. Cap masa yang melebihi 2,147,483,647 saat (kira-kira 68 tahun) akan mengakibatkan ralat limpahan aritmetik.
Menyelesaikan Had Tahun 2038:
Untuk mengatasinya, bahagikan cap masa kepada tahun dan baki saat, menggunakan dua operasi DATEADD
berasingan. Pendekatan lanjutan ini mengendalikan cap masa selepas tahun 2038. (Contoh khusus pendekatan berbilang langkah ini perlu ditambah di sini jika mahu, menunjukkan pecahan kepada tahun dan baki saat.)
Atas ialah kandungan terperinci Bagaimana untuk Menukar Cap Waktu UNIX Bigint kepada DateTime dalam SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!