1. 程式人生 > >Oracle中有關日期的語法

Oracle中有關日期的語法

Oracle中有關日期的語法

Oracle提供了豐富的日期函式。利用日期函式可以靈活的對日期進行運算。

 

to_date()函式——將字串轉換為日期型

to_date()函式用於將字串轉換為日期。被轉換的字串必須符合特定的日期格式。

select to_date('12/02/09', 'mm/dd/yy') result from dual;

 

 

add_months()函式——為日期加上特定月份

add_months()函式將為日期新增特定月份,並獲得新的日期。

select to_char(add_months(sysdate, 2), 'yyyy-mm-dd') result from dual;

 

 

last_day()函式——返回特定日期所在月的最後一天

last_day()函式將接受一個日期引數。該函式首先獲得日期引數所在月的資訊,然後獲得該月最後一天的日期。

select to_char(last_day(sysdate), 'yyyy-mm-dd') result from dual;

可以綜合利用add_months()函式來獲得若干月之後的月份的最後一天。

select to_char(last_day(add_months(sysdate, 3)), 'yyyy-mm-dd') result from dual;

 

 

months_between ()函式——返回兩個日期所差的月數

months_between()函式用於獲取兩個日期所間隔的月數。該函式的返回值是一個實數。

select months_between(sysdate, to_date('2009-02-08', 'yyyy-mm-dd')) result from dual;

當第一個日期早於第二個日期,那麼返回值將是負值。

select months_between(to_date('2009-02-08', 'yyyy-mm-dd'), to_date('2009-03-08', 'yyyy-mm-dd')) result from dual;

 

 

current_date()函式——返回當前會話時區的當前日期

current_date()函式用於返回當前會話時區的當前日期。

select sessiontimezone, to_char(current_date, 'yyyy-mm-dd hh:mi:ss') result from dual;

注意與說明:current_date等無引數函式作為Oracle的關鍵字存在。在使用時,不能為其新增小括號。即select current_date() from dual是錯誤的SQL語句。

 

 

current_timestamp()函式——返回當前會話時區的當前時間戳

current_timestamp()函式用於返回當前會話時的區時間戳。可以結合sessiontimezone來檢視其用法。

select sessiontimezone, current_timestamp from dual;

 

 

extract()函式——返回日期的某個域

日期由若干域組成,例如年、月、日、小時等等。extract()函式可以返回這些域的具體值。為了使用該函式,除了要指定原日期外,還應該指定要返回的域名。

select extract(year from sysdate) result from dual;

需要注意的是,year、month、day域只能從日期(如sysdate)中獲得,而hour、minute、second只能從時間型(如systimestamp)中獲得。