Di SQL Server, SWITCHOFFSET()
fungsi dapat digunakan untuk mengembalikan datetimeoffset nilai yang diubah dari offset zona waktu yang disimpan ke offset zona waktu baru yang ditentukan.
Di bawah ini adalah contoh cara kerja fungsi ini.
Sintaks
Pertama, begini sintaksnya:
SWITCHOFFSET ( DATETIMEOFFSET, time_zone )
Dimana DATETIMEOFFSET
adalah ekspresi yang dapat diselesaikan menjadi datetimeoffset(n) nilai, dan time_zone
adalah string karakter dalam format [+|-]TZH:TZM atau bilangan bulat bertanda (dalam menit) yang mewakili offset zona waktu, dan dianggap sebagai peringatan dan penyesuaian musim panas.
Hasilnya ditampilkan sebagai datetimeoffset dengan presisi pecahan DATETIMEOFFSET
argumen.
Contoh 1
Berikut adalah contoh dasar penggunaan:
SELECT SWITCHOFFSET( '2112-01-01', '+08:00' ) AS Result;
Hasil:
Result ---------------------------------- 2112-01-01 08:00:00.0000000 +08:00
Contoh 2
Contoh ini menggunakan nilai negatif:
SELECT SWITCHOFFSET( '2112-01-01', '-08:00' ) AS Result;
Hasil:
Result ---------------------------------- 2111-12-31 16:00:00.0000000 -08:00
Contoh 4
Dalam contoh ini kami mendeklarasikan variabel dan menetapkan tanggalnya menggunakan datetimeoffset tipe data. Kami kemudian menerapkan SWITCHOFFSET()
tanggal tersebut dan bandingkan dengan tanggal aslinya.
DECLARE @date datetimeoffset = '2112-01-01 00:00:00.0000000 +04:00'; SELECT @date AS 'Original Date', SWITCHOFFSET( @date, '+08:00' ) AS '+08:00';
Hasil:
Original Date +08:00 ---------------------------------- ---------------------------------- 2112-01-01 00:00:00.0000000 +04:00 2112-01-01 04:00:00.0000000 +08:00
Contoh 5
Di sini kita melakukan hal yang sama seperti contoh sebelumnya, tetapi kita menggunakan SYSDATETIMEOFFSET()
berfungsi untuk menghasilkan tanggal/waktu saat ini dan offset.
SELECT SYSDATETIMEOFFSET() AS 'Current Date', SWITCHOFFSET( SYSDATETIMEOFFSET(), '+08:00' ) AS '+08:00';
Hasil:
Current Date +08:00 ---------------------------------- ---------------------------------- 2018-06-05 17:05:36.9415309 +10:00 2018-06-05 15:05:36.9415309 +08:00
Contoh 6
Contoh ini sama dengan contoh sebelumnya, kecuali kita menambahkan nilai negatif.
SELECT SYSDATETIMEOFFSET() AS 'Current Date', SWITCHOFFSET( SYSDATETIMEOFFSET(), '-08:00' ) AS '-08:00';
Hasil:
Current Date -08:00 ---------------------------------- ---------------------------------- 2018-06-05 17:12:07.1122856 +10:00 2018-06-04 23:12:07.1122856 -08:00
Contoh 7
Anda juga dapat memberikan offset zona waktu sebagai bilangan bulat, bukan string:
SELECT SWITCHOFFSET( '2112-01-01', -180 ) AS Result;
Hasil:
Result ---------------------------------- 2111-12-31 21:00:00.0000000 -03:00