?

在oracle中有很多關于日期的函數,如:
1、add_months()用于從一個日期值增加或減少一些月份
date_value:=add_months(date_value,number_of_months)
例:
SQL>?select?add_months(sysdate,12)?"Next?Year"?from?dual;
??
Next?Year
----------
13-11月-04
??
SQL>?select?add_months(sysdate,112)?"Last?Year"?from?dual;
??
Last?Year
----------
13-3月?-13
??
SQL>??
??
2、current_date()返回當前會放時區中的當前日期
date_value:=current_date
SQL>?column?sessiontimezone?for?a15
SQL>?select?sessiontimezone,current_date?from?dual;
??
SESSIONTIMEZONE?CURRENT_DA
---------------?----------
+08:00??????????13-11月-03
??
SQL>?alter?session?set?time_zone='-11:00'
???2??/
??
會話已更改。
??
SQL>?select?sessiontimezone,current_timestamp?from?dual;
??
SESSIONTIMEZONE?CURRENT_TIMESTAMP
---------------?------------------------------------
-11:00??????????12-11月-03?04.59.13.668000?下午?-11:
?????????????????00
??
SQL>??
??
3、current_timestamp()以timestamp?with?time?zone數據類型返回當前會放時區中的當前日期
timestamp_with_time_zone_value:=current_timestamp([timestamp_precision])
SQL>?column?sessiontimezone?for?a15
SQL>?column?current_timestamp?format?a36
SQL>?select?sessiontimezone,current_timestamp?from?dual;
??
SESSIONTIMEZONE?CURRENT_TIMESTAMP
---------------?------------------------------------
+08:00??????????13-11月-03?11.56.28.160000?上午?+08:
?????????????????00
??
SQL>?alter?session?set?time_zone='-11:00'
???2??/
??
會話已更改。
??
SQL>?select?sessiontimezone,current_timestamp?from?dual;
??
SESSIONTIMEZONE?CURRENT_TIMESTAMP
---------------?------------------------------------
-11:00??????????12-11月-03?04.58.00.243000?下午?-11:
?????????????????00
??
SQL>??
??
4、dbtimezone()返回時區
varchar_value:=dbtimezone
SQL>?select?dbtimezone?from?dual;
??
DBTIME
------
-07:00
??
SQL>??
??
5、extract()找出日期或間隔值的字段值
date_value:=extract(date_field?from?[datetime_value|interval_value])
SQL>?select?extract(month?from?sysdate)?"This?Month"?from?dual;
??
This?Month
----------
?????????11
??
SQL>?select?extract(year?from?add_months(sysdate,36))?"3?Years?Out"?from?dual;
??
3?Years?Out
-----------
????????2006
??
SQL>??
??
6、last_day()返回包含了日期參數的月份的最后一天的日期
date_value:=last_day(date_value)
SQL>?select?last_day(date'2000-02-01')?"Leap?Yr?"?from?dual;
??
Leap?Yr?
----------
29-2月?-00
??
SQL>?select?last_day(sysdate)?"Last?day?of?this?month"?from?dual;
??
Last?day?o
----------
30-11月-03
??
SQL>??
??
7、localtimestamp()返回會話中的日期和時間
timestamp_value:=localtimestamp
SQL>?column?localtimestamp?format?a28
SQL>?select?localtimestamp?from?dual;
??
LOCALTIMESTAMP
----------------------------
13-11月-03?12.09.15.433000
下午
??
SQL>?select?localtimestamp,current_timestamp?from?dual;
??
LOCALTIMESTAMP???????????????CURRENT_TIMESTAMP
----------------------------?------------------------------------
13-11月-03?12.09.31.006000???13-11月-03?12.09.31.006000?下午?+08:
下午?????????????????????????00
&

?