DATETIMEOFFSETFROMPARTS (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)

Mengembalikan nilai datetimeoffset untuk argumen tanggal dan waktu yang ditentukan. Nilai yang dikembalikan memiliki presisi yang ditentukan oleh argumen presisi, dan offset seperti yang ditentukan oleh argumen offset.

Konvensi sintaks transact-SQL

Sintaksis

DATETIMEOFFSETFROMPARTS ( year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision )  

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

Argumen

Tahun
Ekspresi bilangan bulat yang menentukan satu tahun.

Bulan
Ekspresi bilangan bulat yang menentukan satu bulan.

hari
Ekspresi bilangan bulat yang menentukan hari.

jam
Ekspresi bilangan bulat yang menentukan jam.

menit
Ekspresi bilangan bulat yang menentukan menit.

seconds
Ekspresi bilangan bulat yang menentukan detik.

Pecahan
Ekspresi bilangan bulat yang menentukan nilai detik pecahan.

hour_offset
Ekspresi bilangan bulat yang menentukan bagian jam dari offset zona waktu.

minute_offset
Ekspresi bilangan bulat yang menentukan bagian menit dari offset zona waktu.

Presisi
Nilai literal bilangan bulat yang menentukan presisi nilai datetimeoffset yang DATETIMEOFFSETFROMPARTS akan ditampilkan.

Jenis yang dikembalikan

datetimeoffset(presisi)

Keterangan

DATETIMEOFFSETFROMPARTSmengembalikan jenis data datetimeoffset yang diinisialisasi sepenuhnya. Argumen offset mewakili offset zona waktu. Untuk argumen offset yang dihilangkan, DATETIMEOFFSETFROMPARTS mengasumsikan offset 00:00 zona waktu - dengan kata lain, tidak ada offset zona waktu. Untuk argumen offset yang ditentukan, DATETIMEOFFSETFROMPARTS mengharapkan nilai untuk kedua argumen, dan nilai positif atau negatif. Jika minute_offset memiliki nilai dan hour_offset tidak memiliki nilai, DATETIMEOFFSETFROMPARTS akan menimbulkan kesalahan. DATETIMEOFFSETFROMPARTS akan menimbulkan kesalahan jika argumen lain memiliki nilai yang tidak valid. Jika setidaknya satu argumen yang diperlukan memiliki NULL nilai, maka DATETIMEOFFSETFROMPARTS akan mengembalikan NULL. Namun, jika argumen presisi memiliki NULL nilai, maka DATETIMEOFFSETFROMPARTS akan menimbulkan kesalahan.

Argumen pecahan tergantung pada argumen presisi. Misalnya, untuk nilai presisi 7, setiap pecahan mewakili 100 nanodetik; untuk presisi 3, setiap fraksi mewakili milidetik. Untuk nilai presisi nol, nilai pecahan juga harus nol; jika tidak, DATETIMEOFFSETFROMPARTS akan menimbulkan kesalahan.

Fungsi ini mampu di-remote ke server SQL Server 2012 (11.x) ke atas. Ini tidak di-remote ke server yang memiliki versi di bawah SQL Server 2012 (11.x).

Contoh

J. Contoh tanpa pecahan detik

SELECT DATETIMEOFFSETFROMPARTS ( 2010, 12, 31, 14, 23, 23, 0, 12, 0, 7 ) AS Result;  

Berikut adalah hasil yang ditetapkan.

Result  
----------------------------------
2010-12-31 14:23:23.0000000 +12:00  
  
(1 row(s) affected)  

B. Contoh dengan pecahan detik

Contoh ini menunjukkan penggunaan pecahan dan parameter presisi:

  1. Ketika pecahan memiliki nilai 5, dan presisi memiliki nilai 1, nilai pecahan mewakili 5/10 detik.

  2. Ketika pecahan memiliki nilai 50, dan presisi memiliki nilai 2, nilai pecahan mewakili 50/100 detik.

  3. Ketika pecahan memiliki nilai 500, dan presisi memiliki nilai 3, maka nilai pecahan mewakili 500/1000 detik.

SELECT DATETIMEOFFSETFROMPARTS ( 2011, 8, 15, 14, 30, 00, 5, 12, 30, 1 );  
SELECT DATETIMEOFFSETFROMPARTS ( 2011, 8, 15, 14, 30, 00, 50, 12, 30, 2 );  
SELECT DATETIMEOFFSETFROMPARTS ( 2011, 8, 15, 14, 30, 00, 500, 12, 30, 3 );  
GO  

Berikut adalah hasil yang ditetapkan.

----------------------------------  
2011-08-15 14:30:00.5 +12:30  
  
(1 row(s) affected)  
  
----------------------------------  
2011-08-15 14:30:00.50 +12:30  
  
(1 row(s) affected)  
  
----------------------------------  
2011-08-15 14:30:00.500 +12:30  
  
(1 row(s) affected)  

Baca juga

datetimeoffset (Transact-SQL)
PADA ZONA WAKTU (T-SQL)