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

Cara Menambahkan Indikator Meridiem (AM/PM) ke Nilai Waktu di Oracle

Saat menggunakan TO_CHAR() berfungsi untuk memformat nilai datetime di Oracle Database, Anda dapat menambahkan indikator meridiem (AM/PM) hanya dengan menambahkan A.M. atau PM ke model format Anda.

Oracle kemudian menampilkan indikator meridiem yang sesuai, tergantung pada apakah nilai waktunya adalah AM atau PM.

Anda dapat memberikannya dalam huruf besar atau kecil, dan dengan atau tanpa titik (mis. A.M. , A.M. a.m , a.m , dll). Oracle kemudian akan menampilkan indikator meridiem seperti yang ditentukan.

Contoh

Berikut ini contoh untuk didemonstrasikan:

SELECT TO_CHAR(timestamp '2030-12-30 08:30:45', 'HH:MI:SS AM') 
FROM DUAL;

Hasil:

08:30:45 AM

Dalam hal ini, waktunya adalah ante meridiem, sehingga hasilnya memiliki A.M. ditambahkan.

AM vs PM

Hal yang baik tentang itu adalah bahwa Oracle bekerja apakah itu AM atau PM, dan menampilkan indikator meridiem yang berlaku.

Jadi, inilah yang terjadi ketika saya mengubah waktu ke nilai PM:

SELECT TO_CHAR(timestamp '2030-12-30 18:30:45', 'HH:MI:SS AM') 
FROM DUAL;

Hasil:

06:30:45 PM

Indikator meridiem sekarang adalah PM, meskipun string format saya adalah A.M. . Oracle cukup pintar untuk mengetahui bahwa waktunya adalah post meridiem.

Huruf Besar vs Huruf Kecil

Mengubah huruf besar/kecil dari elemen format mengubah huruf besar/kecil dari hasil:

SELECT 
    TO_CHAR(timestamp '2030-12-30 18:30:45', 'HH:MI:SS AM') AS "Uppercase",
    TO_CHAR(timestamp '2030-12-30 18:30:45', 'HH:MI:SS am') AS "Lowercase",
    TO_CHAR(timestamp '2030-12-30 18:30:45', 'HH:MI:SS Am') AS "Mixed"
FROM DUAL;

Hasil:

     Uppercase      Lowercase          Mixed 
______________ ______________ ______________ 
06:30:45 PM    06:30:45 pm    06:30:45 Pm    

Titik vs Tanpa Titik

Anda dapat menyertakan titik jika Anda mau:

SELECT 
    TO_CHAR(timestamp '2030-12-30 18:30:45', 'HH:MI:SS A.M.') AS "Uppercase",
    TO_CHAR(timestamp '2030-12-30 18:30:45', 'HH:MI:SS a.m.') AS "Lowercase",
    TO_CHAR(timestamp '2030-12-30 18:30:45', 'HH:MI:SS A.m.') AS "Mixed"
FROM DUAL;

Hasil:

       Uppercase        Lowercase            Mixed 
________________ ________________ ________________ 
06:30:45 P.M.    06:30:45 p.m.    06:30:45 P.M.   

Meskipun, perhatikan bahwa ini mempengaruhi indikator meridiem kasus campuran.

Tanggal &Waktu Hari Ini

Di sini, saya melewati SYSDATE untuk mendapatkan tanggal/waktu saat ini:

SELECT 
    TO_CHAR(SYSDATE, 'HH:MI:SS A.M.')
FROM DUAL;

Hasil:

07:55:57 P.M.

  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 edisi silang maju di R12.2

  2. JDBC ResultSet dapatkan kolom dengan alias tabel

  3. Menemukan jumlah karakter dan angka dalam string

  4. Bagaimana saya bisa mendeskripsikan tabel di Oracle tanpa menggunakan perintah DESCRIBE?

  5. Melarikan diri dari kutipan tunggal di PLSQL