在PL/SQL中共有三個日期類型:
- DATE: 表示日期和時間,精度爲秒級別,沒有時區信息,是Oracle中最古老和常用的日期類型
- TIMESTAMP: 和DATE類似,但是精度可以達到納秒級別,且可以選擇包含時區信息
- INTERVAL:與DATE和TIMESTAMP表示時間上的一點不同,INTERVAL表示時間段,可以選擇以年,月,日,秒來表示時間區別
today_date DATE := SYSDATE;
today_timestamp TIMESTAMP := SYSTIMESTAMP;
today_timetzone TIMESTAMP WITH TIME ZONE := SYSTIMESTAMP;
today_local_timetzone TIMESTAMP WITH LOCAL TIME ZONE := SYSTIMESTAMP;
interval_year_to_month INTERVAL YEAR (4) TO MONTH := '2017-01';
interval_day_to_second INTERVAL DAY (2) TO SECOND := '10 10:10:10';
#獲取當前的時間
Oracle數據庫提供了一些內置函數用於獲取當前的時間
函數 | 時區 | 返回類型 |
---|---|---|
CURRENT_DATE | Session | DATE |
CURRENT_TIMESTAMP | Session | TIMESTAMP WITH TIME ZONE |
LOCALTIMESTAMP | Session | TIMESTAMP |
SYSDATE | Database server | DATE |
SYSTIMESTAMP | Database server | TIMESTAMP WITH TIME ZONE |
#時間運算
Oracle數據庫提供了對時間進行算術運算的不同方式:
- 將日期與一個數相加或相減, 這個操作數的單位爲天
- 兩個日期相減,得到時間區間
- 通過內建的日期函數進行時間運算
tomorrow DATE := SYSDATE + 1;
one_hour_ago DATE := SYSDATE - 1/24;
duration NUMBER := SYSDATE - one_hour_ago;