日期算術

Oracle 支援 DATE(包括到最近的秒的時間)和 TIMESTAMP(包括到幾分之一秒的時間)資料型別,這允許本地算術(加法和減法)。例如:

要獲得第二天:

select to_char(sysdate + 1, 'YYYY-MM-DD') as tomorrow from dual;

前一天:

select to_char(sysdate - 1, 'YYYY-MM-DD') as yesterday from dual;

要在當前日期新增 5 天:

select to_char(sysdate + 5, 'YYYY-MM-DD') as five_days_from_now from dual;

要在當前日期新增 5 小時:

select to_char(sysdate + (5/24), 'YYYY-MM-DD HH24:MI:SS') as five_hours_from_now from dual;

要在當前日期新增 10 分鐘:

select to_char(sysdate + (10/1440), 'YYYY-MM-DD HH24:MI:SS') as ten_mintues_from_now from dual;

要在當前日期新增 7 秒:

select to_char(sysdate + (7/86400), 'YYYY-MM-DD HH24:MI:SS') as seven_seconds_from_now from dual;

要選擇 hire_date 是 30 天前或更早的行:

select * from emp where hire_date < sysdate - 30;

要選擇 last_updated 列在最後一小時內的行:

select * from logfile where last_updated >= sysdate - (1/24);

Oracle 還提供內建資料型別 INTERVAL,它表示持續時間(例如 1.5 天,36 小時,2 個月等)。這些也可以與 DATETIMESTAMP 表示式一起使用。例如:

select * from logfile where last_updated >= sysdate - interval '1' hour;