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)中獲得。