日期算術
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 個月等)。這些也可以與 DATE
和 TIMESTAMP
表示式一起使用。例如:
select * from logfile where last_updated >= sysdate - interval '1' hour;