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

TODATETIMEOFFSET() Contoh di SQL Server

Di SQL Server, Anda dapat menggunakan TODATETIMEOFFSET() berfungsi untuk mengembalikan datetimeoffset nilai yang diterjemahkan dari datetime2 ekspresi. Ia menerima dua argumen; tanggal, dan offset yang ingin Anda terapkan pada tanggal tersebut.

Di bawah ini adalah contoh penggunaannya.

Sintaks

Sintaks TODATETIMEOFFSET() seperti ini:

TODATETIMEOFFSET ( expression , time_zone )

Dimana expression adalah ekspresi yang menghasilkan datetime2 nilai, dan time_zone adalah zona waktu yang ingin Anda terapkan pada ekspresi tersebut (tanggal).

Anda dapat memberikan zona waktu dalam hitungan menit atau jam. Jika Anda memberikannya dalam hitungan menit, gunakan bilangan bulat (mis. -120 ), jika tidak, untuk menyediakannya dalam hitungan jam, gunakan string (mis. '+04.00' ). Rentang untuk zona waktu adalah +14 hingga -14 (jam).

Selain itu, tanggal yang Anda berikan ditafsirkan dalam waktu lokal untuk zona waktu yang ditentukan.

Contoh 1

Berikut adalah contoh dasar penggunaan:

SELECT TODATETIMEOFFSET( '2112-01-01 00:00:00', '+08:00' ) AS Result;

Hasil:

Result
----------------------------------
2112-01-01 00:00:00.0000000 +08:00

Contoh 2 – Nilai Negatif

Ini sama dengan contoh sebelumnya, hanya saja saya menggunakan nilai negatif sebagai gantinya:

SELECT TODATETIMEOFFSET( '2112-01-01 00:00:00', '-08:00' ) AS Result;

Hasil:

Result
----------------------------------
2112-01-01 00:00:00.0000000 -08:00

Contoh 3 – Menggunakan Variabel datetime2

Dalam contoh ini, saya secara eksplisit menetapkan variabel dengan datetime2 nilai, lalu terapkan TODATETIMEOFFSET() dengan nilai itu, dan bandingkan nilainya:

DECLARE @date datetime2 = '2112-01-01 00:00:00.0000000';
SELECT 
    @date AS 'Original Date',
    TODATETIMEOFFSET( @date, '+08:00' ) AS '+08:00';

Hasil:

Original Date               +08:00
--------------------------- ----------------------------------
2112-01-01 00:00:00.0000000 2112-01-01 00:00:00.0000000 +08:00

Seperti yang dapat kita lihat dengan contoh ini (dan yang sebelumnya), nilai tanggal asli tidak memiliki waktu tanggal informasi offset (karena ini adalah datetime2 value), tetapi setelah kita menjalankannya melalui TODATETIMEOFFSET() fungsi, kita berakhir dengan datetimeoffset tipe data.

Contoh 4 – Menggunakan Variabel datetimeoffset

Ini mirip dengan contoh sebelumnya, kecuali bahwa tanggal asli disetel sebagai datetimeoffset nilai:

DECLARE @date datetimeoffset = '2112-01-01 00:00:00.0000000 +04:00';
SELECT 
    @date AS 'Original Date',
    TODATETIMEOFFSET( @date, '+08:00' ) AS '+08:00';

Hasil:

Original Date                      +08:00
---------------------------------- ----------------------------------
2112-01-01 00:00:00.0000000 +04:00 2112-01-01 00:00:00.0000000 +08:00

Contoh 5 – Menggunakan Tanggal/Waktu Saat Ini

Dalam contoh ini, saya memasukkan SYSDATETIMEOFFSET() berfungsi sebagai ekspresi tanggal. Fungsi ini menghasilkan tanggal/waktu saat ini dari komputer yang menjalankan instance SQL Server:

SELECT 
    SYSDATETIMEOFFSET() AS 'Current Date',
    TODATETIMEOFFSET( SYSDATETIMEOFFSET(), '+08:00' ) AS '+08:00';

Hasil:

Current Date                       +08:00
---------------------------------- ----------------------------------
2018-06-06 08:50:57.8382284 +10:00 2018-06-06 08:50:57.8382284 +08:00

Contoh 6 – Memberikan Offset Zona Waktu sebagai Integer

Seperti yang disebutkan, Anda juga dapat memberikan offset zona waktu sebagai bilangan bulat, bukan string:

SELECT TODATETIMEOFFSET( '2112-01-01 00:00:00', -180 ) AS Result;

Hasil:

Result
----------------------------------
2112-01-01 00: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. Memilih data dari dua server berbeda di SQL Server

  2. Memigrasikan Database Microsoft Access ke SQL Server

  3. Bagaimana CAST() Bekerja di SQL Server

  4. Metode Ekspor dan Impor Tabel Database SQL Server

  5. Bagaimana cara mengubah nilai kolom identitas secara terprogram?