Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Sistem Platform Analitik (PDW)
Database SQL di Microsoft Fabric
Mengembalikan nilai datetimeoffset yang diubah dari offset zona waktu tersimpan ke offset zona waktu baru yang ditentukan.
Untuk gambaran umum semua jenis dan fungsi data tanggal dan waktu Transact-SQL, lihat Jenis dan fungsi data tanggal dan waktu.
Sintaks
SWITCHOFFSET ( datetimeoffset_expression , timezoneoffset_expression )
Argumen
datetimeoffset_expression
Ekspresi yang dapat diatasi ke nilai datetimeoffset(n ).
timezoneoffset_expression
Ekspresi dalam format [+|-]TZH:TZM atau bilangan bulat yang ditandatangani (menit) yang mewakili offset zona waktu, dan diasumsikan menyadari dan disesuaikan dengan penyimpanan siang hari.
Tipe pengembalian
datetimeoffset dengan presisi pecahan argumen datetimeoffset_expression .
Keterangan
Gunakan SWITCHOFFSET untuk memilih nilai datetimeoffset ke dalam offset zona waktu yang berbeda dari offset zona waktu yang awalnya disimpan.
SWITCHOFFSET tidak memperbarui nilai time_zone yang disimpan.
SWITCHOFFSET dapat digunakan untuk memperbarui kolom datetimeoffset .
Menggunakan SWITCHOFFSET dengan fungsi GETDATE() dapat menyebabkan kueri berjalan lambat. Ini karena pengoptimal kueri tidak dapat memperoleh perkiraan kardinalitas yang akurat untuk nilai tanggalwaktu. Untuk mengatasi masalah ini, gunakan OPTION (RECOMPILE) petunjuk kueri untuk memaksa pengoptimal kueri menyusun ulang rencana kueri lain kali kueri yang sama dijalankan. Pengoptimal kemudian memiliki kardinalitas yang akurat memperkirakan dan menghasilkan rencana kueri yang lebih efisien. Untuk informasi selengkapnya tentang RECOMPILE petunjuk kueri, lihat Petunjuk kueri.
DECLARE @dt AS DATETIMEOFFSET = switchoffset(CONVERT (DATETIMEOFFSET, GETDATE()), '-04:00');
SELECT *
FROM t
WHERE c1 > @dt
OPTION (RECOMPILE);
Contoh
Contoh berikut menggunakan SWITCHOFFSET untuk menampilkan offset zona waktu yang berbeda dari nilai yang disimpan dalam database.
CREATE TABLE dbo.test (ColDatetimeoffset DATETIMEOFFSET);
GO
INSERT INTO dbo.test VALUES ('1998-09-20 7:45:50.71345 -5:00');
GO
SELECT SWITCHOFFSET (ColDatetimeoffset, '-08:00')
FROM dbo.test;
GO
--Returns: 1998-09-20 04:45:50.7134500 -08:00
SELECT ColDatetimeoffset
FROM dbo.test;
--Returns: 1998-09-20 07:45:50.7134500 -05:00