Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

SWITCHOFFSET() Contoh di SQL Server

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pemicu Masuk di SQL Server

  2. Bagaimana SCHEMA_NAME() Bekerja di SQL Server

  3. Bagaimana membandingkan datetime dengan hanya tanggal di SQL Server

  4. Kunci Utama Gabungan vs kolom ID tambahan?

  5. Apa itu OLAP CUBE Multi Dimensi dan berikan contoh kubus lebih dari 3 dimensi