Masalah:
Anda ingin mendapatkan tanggal saat ini (tanpa waktu) di Oracle.
Solusi 1 (jika Anda tidak keberatan dengan waktu nol):
SELECT TRUNC(CURRENT_DATE) AS current_date FROM dual;
Misalnya, jika Anda menjalankan kueri ini pada 16 Juni 2021, tabel hasil akan terlihat seperti ini:
tanggal_saat ini |
---|
06-16-16T00:00:00Z |
Diskusi:
Oracle tidak memiliki tipe data yang hanya menyimpan tanggal tanpa waktu. Tetapi jika Anda tidak keberatan dengan angka nol sebagai pengganti waktu, Anda cukup menyimpan tanggal di DATE
datatype (yang menyimpan tanggal dan waktu di Oracle). Untuk mendapatkan tanggal dan waktu saat ini sebagai DATE
nilai, Anda cukup menggunakan CURRENT_DATE
. Untuk menghilangkan waktu (dan memiliki angka nol), Anda perlu memotong tanggal:
SELECT TRUNC(CURRENT_DATE) AS current_date FROM dual;
Solusi 2 (jika Anda hanya menginginkan tanggal dan bukan nol sebagai pengganti waktu):
SELECT TO_CHAR(CURRENT_DATE, 'yyyy-MM-dd') AS current_date FROM dual;
Misalnya, Jika Anda menjalankan kueri ini pada 16 Juni 2021, tabel hasil akan terlihat seperti ini:
tanggal_saat ini |
---|
2016-06-16 |
Diskusi:
Untuk mendapatkan teks VARCHAR2
ketik yang menyimpan tanggal, Anda dapat menggunakan TO_CHAR()
fungsi di Oracle. Anda perlu menentukan cap tanggal/waktu yang akan dikonversi sebagai argumen pertama, dan dalam format di mana Anda ingin menyimpan tanggal sebagai argumen kedua.
Karena Anda menginginkan tanggal saat ini, argumen pertama adalah CURRENT_DATE
. Argumen kedua adalah pilihan Anda. Misalnya, 'yyyy-MM-dd'
singkatan dari 'tahun-bulan-hari', di mana bulan adalah numerik daripada teks. Tabel di bawah ini menyajikan beberapa contoh format tanggal dan output masing-masing untuk tanggal 16 Juni 2021.
format tanggal | hasil |
---|---|
'YYYY-MM-DD' | 2016-06-16 |
'YYYY/MM/DD' | 2016/06/16 |
'YYYY MM DD' | 21 06 16 |
'DD-SEN-YYYY' | 16-JUN-2021 |
'DD-SEN-YY' | 16-JUN-21 |
'FMMonth DD, YYYY' | 16 Juni 2021 |
Anda dapat membaca lebih lanjut tentang format tanggal di sini.