Microsoft memperkenalkan CURRENT_TIMEZONE()
fungsi di SQL Server 2019 untuk mengembalikan zona waktu server.
Lebih khusus lagi, fungsi ini "mengembalikan nama zona waktu yang diamati oleh server atau instance".
Contoh
Berikut ini contoh untuk didemonstrasikan.
SELECT CURRENT_TIMEZONE();
Hasil:
(UTC) Coordinated Universal Time
Dalam hal ini, zona waktu instance SQL Server saya adalah UTC.
Saya dapat melihat ini ketika saya menjalankan fungsi seperti SYSDATETIMEOFFSET()
.
SELECT SYSDATETIMEOFFSET();
Hasil:
2020-04-01 00:14:44.0470785 +00:00
UTC memiliki offset zona waktu +00:00 (tanpa offset), dan ini tercermin saat saya mengembalikan tanggal dan waktu sistem.
Versi SQL Server Sebelumnya
Jika saya menjalankan CURRENT_TIMEZONE()
terhadap contoh SQL Server 2017 saya, inilah yang saya dapatkan.
SELECT CURRENT_TIMEZONE();
Hasil:
Msg 195, Level 15, State 10, Line 1 'CURRENT_TIMEZONE' is not a recognized built-in function name.
Saya bahkan mengunduh wadah Docker terbaru dengan SQL Server 2017 untuk Linux untuk memeriksa ini, tetapi saya masih mendapatkan kesalahan ini.
Saya juga telah memeriksa instalasi SQL Server 2017 lainnya tetapi dengan hasil yang sama.
Di bagian komentar dokumentasi online untuk fungsi ini, Microsoft telah menyindir bahwa CURRENT_TIMEZONE()
akan di-porting ke versi SQL Server sebelumnya, tetapi hal ini tampaknya tidak terjadi pada saat tulisan ini dibuat.
Sementara itu, Anda dapat mencoba kode berikut.
DECLARE @TimeZone VARCHAR(50)
EXEC MASTER.dbo.xp_regread 'HKEY_LOCAL_MACHINE',
'SYSTEM\CurrentControlSet\Control\TimeZoneInformation',
'TimeZoneKeyName',@TimeZone OUT
SELECT @TimeZone
Hasil:
UTC
Saya menjalankannya pada contoh yang sama dari SQL Server 2017 yang tidak mendukung CURRENT_TIMEZONE()
, dan berhasil dengan baik.
Jelas, hasil Anda akan bergantung pada lokasi server Anda (atau setidaknya, untuk zona waktu apa server tersebut dikonfigurasi). Inilah yang saya dapatkan jika saya menjalankan pernyataan ini di server lain:
W. Europe Standard Time
SQL Server juga memiliki tampilan sistem yang memungkinkan Anda mengembalikan daftar zona waktu yang didukung, yang dapat Anda gunakan untuk memeriksa silang hasil Anda di sini.