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

Tambahkan Offset Zona Waktu ke Nilai datetime2 di SQL Server (T-SQL)

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pisahkan nilai pada beberapa baris

  2. Cara membuat Batasan Kunci Asing pada Beberapa Kolom di SQL Server - Tutorial SQL Server / TSQL Bagian 67

  3. Penginstalan dan Konfigurasi SQL Server Log Pengiriman &Pemulihan Bencana -4

  4. Mengapa menggunakan Pilih 100 Persen Teratas?

  5. Mengapa saya tidak dapat melakukan fungsi agregat pada ekspresi yang berisi agregat tetapi saya dapat melakukannya dengan membuat pernyataan pilih baru di sekitarnya?