Di SQL Server, TODATETIMEOFFSET()
fungsi secara khusus dirancang untuk mengembalikan datetimeoffset nilai dari datetime2 nilai.
Mengingat fakta bahwa datetime2 tipe data sebenarnya tidak mendukung offset zona waktu, dan datetimeoffset harus berisi offset, TODATETIMEOFFSET()
fungsi memungkinkan Anda untuk menentukan offset zona waktu yang akan digunakan.
Artikel ini memberikan beberapa contoh untuk ditunjukkan.
Penggunaan Dasar
Berikut adalah contoh penggunaan tipikal TODATETIMEOFFSET()
fungsi.
DECLARE @dt datetime2 = '2020-12-20 17:33:59.8900000';
SELECT
@dt AS [datetime2],
TODATETIMEOFFSET(@dt, '+07:00') AS [datetimeoffset];
Hasil (menggunakan keluaran vertikal):
datetime2 | 2020-12-20 17:33:59.8900000 datetimeoffset | 2020-12-20 17:33:59.8900000 +07:00
Dalam hal ini saya mengembalikan yang asli datetime2 nilai dan datetimeoffset . yang dihasilkan nilai.
Hasilnya adalah tanggal/waktu aslinya sama, kecuali offset zona waktu yang ditentukan telah ditambahkan.
Kisarannya adalah +14 hingga -14 (dalam jam). Ekspresi ditafsirkan dalam waktu lokal untuk zona waktu yang ditentukan.
Tentukan Offset Zona Waktu dalam Menit
Anda juga dapat menentukan offset zona waktu dalam hitungan menit. Ini contohnya.
DECLARE @dt datetime2 = '2020-12-20 17:33:59.8900000';
SELECT
@dt AS [datetime2],
TODATETIMEOFFSET(@dt, +120) AS [datetimeoffset];
Hasil (menggunakan keluaran vertikal):
datetime2 | 2020-12-20 17:33:59.8900000 datetimeoffset | 2020-12-20 17:33:59.8900000 +02:00
Dalam hal ini saya menentukan +120 menit, yang sama dengan dua jam. Jadi hasilnya adalah offset zona waktu +02:00 (artinya ditambah dua jam).
Perhatikan juga bahwa ketika Anda memberikan offset zona waktu dalam hitungan menit, Anda memberikannya sebagai nilai integer. Di sisi lain, ketika Anda menyediakannya dalam hitungan jam, Anda perlu menentukannya sebagai string.
Lihat Mengonversi Tanggal ke Zona Waktu Lain untuk contoh cara melakukannya.