Topik ini menjelaskan fitur operator aritmatika dasar tanda plus (+) dan tanda minus (-), serta fungsi-fungsi yang dapat digunakan untuk memproses nilai tanggal dan waktu.
Tabel 1 mengilustrasikan fitur operator aritmatika dasar tanda plus (+) dan tanda minus (-). Tabel 2 menunjukkan semua fungsi yang dapat digunakan untuk memproses nilai tanggal dan waktu. Untuk informasi lebih lanjut tentang fungsi-fungsi ini, lihat topik berikutnya. Untuk informasi tentang fungsi pemformatan, lihat Fungsi untuk Memformat Tipe Data. Sebelum memulai dengan topik ini, pastikan Anda telah memahami informasi latar belakang tentang tipe data tanggal dan waktu di Tipe Data Tanggal dan Waktu.
Tabel 1. Operator Tanggal/Waktu
Operator | Contoh | Hasil |
+ | DATE '2001-09-28' + 7 | 05-OCT-01 00:00:00 |
+ | TIMESTAMP '2001-09-28 13:30:00' + 3 | 01-OCT-01 13:30:00 |
- | DATE '2001-10-01' - 7 | 24-SEP-01 00:00:00 |
- | TIMESTAMP '2001-09-28 13:30:00' - 3 | 25-SEP-01 13:30:00 |
- | TIMESTAMP '2001-09-29 03:00:00' - TIMESTAMP '2001-09-27 12:00:00' | @ 1 hari 15 jam |
Dalam fungsi tanggal dan waktu yang tercantum di Tabel 2, tipe data DATE dan TIMESTAMP dapat dikonversi satu sama lain.
Tabel 2. Fungsi Tanggal/Waktu
Fungsi | Tipe Kembali | Deskripsi | Contoh | Hasil |
ADD MONTHS(DATE, NUMBER) | DATE | Tambah bulan ke tanggal. | ADD MONTHS('28-FEB-97', 3.8) | 31-MAY-97 00:00:00 |
CURRENT DATE | DATE | Tanggal saat ini. | CURRENT DATE | 04-JUL-07 |
CURRENT TIMESTAMP | TIMESTAMP | Mengembalikan tanggal dan waktu saat ini. | CURRENT TIMESTAMP | 04-JUL-07 15:33:23.484 |
EXTRACT(field FROM TIMESTAMP) | DOUBLE PRECISION | Mendapatkan sub-bidang. | EXTRACT(hour FROM TIMESTAMP '2001-02-16 20:38:40') | 20 |
LAST DAY(DATE) | DATE | Mengembalikan hari terakhir bulan yang diwakili oleh tanggal tertentu. Jika tanggal tersebut mengandung bagian waktu, itu akan dibawa ke hasil tanpa perubahan. | LAST DAY('14-APR-98') | 30-APR-98 00:00:00 |
LOCALTIMESTAMP [ (presisi) ] | TIMESTAMP | Tanggal dan waktu saat ini (awal transaksi saat ini). | LOCALTIMESTAMP | 04-JUL-07 15:33:23.484 |
MONTHS BETWEEN(DATE, DATE) | NUMBER | Jumlah bulan antara dua tanggal. | MONTHS BETWEEN('28-FEB- 07', '30-N0V-06') | 3 |
NEXT DAY(DATE, dayofweek) | DATE | Tanggal jatuh pada hari minggu setelah tanggal tertentu. | NEXT DAY('16-APR- 07','FRI') | 2 0-APR-07 00:00:00 |
NEW TIME(DATE, VARCHAR, VARCHAR) | DATE | Mengonversi tanggal dan waktu ke zona waktu alternatif | NEW TIME(T0 DATE '2005/05/29 01:45', 'AST', 'PST') | 2005/05/29 21:45:00 |
ROUND(DATE [, format ]) | DATE | Tanggal dibulatkan sesuai format. | R0UND(T0 DATE('29-MAY- 05'),'M0N') | 01-JUN-05 00:00:00 |
SYS EXTRACT UTC(TIME STAMP WITH TIME ZONE) | TIMESTAMP | TIMESTAMP | SYS EXTRACT UTC(CAST('24 -MAR-11 12:30:00PM - 04:00' AS TIMESTAMP WITH TIME ZONE)) | 2 4-MAR-11 16:30:00 |
SYSDATE | DATE | Mengembalikan tanggal dan waktu saat ini | SYSDATE | 01-AUG-12 11:12:34 |
SYSTIMESTAMP() | TIMESTAMP | Mengembalikan tanggal dan waktu saat ini | SYSTIMESTAMP | 01-AUG-12 11:11:23.665 229 -07:00 |
TRUNC(DATE [format ]) | DATE | Potong sesuai format. | TRUNC(T0 DATE('2 9-MAY- 05'), 'MON') | 01-MAY-05 00:00:00 |