Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

NEW_TIME() Fungsi di Oracle

Di Oracle Database, NEW_TIME() fungsi mengonversi tanggal dari zona waktu tertentu ke zona waktu lain yang ditentukan, dan mengembalikan hasilnya.

Sintaks

Sintaksnya seperti ini:

NEW_TIME(date, timezone1, timezone2)

Jadi, fungsi mengembalikan tanggal dan waktu dalam zona waktu timezone2 kapan tanggal dan waktu di zona waktu timezone1 adalah date .

Perhatikan bahwa sebelum menggunakan fungsi ini, Anda harus menyetel NLS_DATE_FORMAT parameter untuk menampilkan waktu 24 jam.

Argumen timezone1 dan timezone2 dapat berupa salah satu dari string teks ini:

AST atau ADT Atlantic Standard atau Waktu Musim Panas
BST atau BDT Bering Standar atau Waktu Siang Hari
CST atau CDT Standar Tengah atau Waktu Musim Panas
EST atau EDT Standar Timur atau Waktu Musim Panas
GMT Waktu Rata-Rata Greenwich
HST atau HDT Waktu Standar atau Waktu Siang Hari Alaska-Hawaii
MST atau MDT Standar Gunung atau Waktu Musim Panas
NST Waktu Standar Newfoundland
PST atau PDT Standar Pasifik atau Waktu Musim Panas
YST atau YDT Standar Yukon atau Waktu Musim Panas

Contoh

Ini contohnya:

ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';

SELECT
    NEW_TIME(
        TO_DATE('2030-03-01 12:30:45', 'YYYY-MM-DD HH24:MI:SS'), 
        'AST', 
        'PST'
        )
FROM DUAL;

Hasil:

2030-03-01 08:30:45

Seperti yang disebutkan, saat menggunakan fungsi NLS_DATE_FORMAT ini parameter perlu diatur untuk menampilkan waktu 24 jam, jadi itulah yang dilakukan baris pertama dalam contoh di atas. Anda dapat menghilangkan baris ini jika NLS_DATE_FORMAT sesi Anda parameter sudah menggunakan waktu 24 jam. Lihat Cara Mengatur Format Tanggal Sesi Anda untuk contoh lebih lanjut tentang pengaturan format tanggal untuk sesi saat ini.

Argumen Null

Jika ada argumen null , hasilnya null :

SET NULL 'null';

SELECT
    NEW_TIME(null, 'AST', 'ADT') AS "1",
    NEW_TIME(TO_DATE('2030-03-01 12:30:45', 'YYYY-MM-DD HH24:MI:SS'), null, 'ADT') AS "2",
    NEW_TIME(TO_DATE('2030-03-01 12:30:45', 'YYYY-MM-DD HH24:MI:SS'), 'AST', null) AS "3"
FROM DUAL;

Hasil:

      1       2       3 
_______ _______ _______ 
null    null    null   

Secara default, SQLcl dan SQL*Plus mengembalikan ruang kosong setiap kali null terjadi sebagai akibat dari SQL SELECT penyataan.

Namun, Anda dapat menggunakan SET NULL untuk menentukan string berbeda yang akan dikembalikan. Di sini saya menetapkan bahwa string null harus dikembalikan.

Argumen Tidak Ada

Memanggil NEW_TIME() dengan jumlah argumen yang salah, atau tanpa memberikan argumen apa pun, menghasilkan kesalahan:

SELECT NEW_TIME()
FROM DUAL;

Hasil:

Error starting at line : 1 in command -
SELECT NEW_TIME()
FROM DUAL
Error at Command Line : 1 Column : 8
Error report -
SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"
*Cause:    
*Action:

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle ODP.Net Dengan Entity Framework 6 - Penyedia yang kompatibel dengan database kerangka kerja entitas tidak dapat ditemukan

  2. Cara Mendapatkan Nama Hari dari Tanggal di Oracle

  3. Bagaimana saya bisa menemukan tabel mana yang merujuk tabel yang diberikan di Oracle SQL Developer?

  4. Perbarui dengan permintaan Gabung di Oracle

  5. LAST_DAY() Fungsi di Oracle