1ã€add_months()ç”¨äºŽä»Žä¸€ä¸ªæ—¥æœŸå€¼å¢žåŠ æˆ–å‡å°‘一些月ä»?
date_value:=add_months(date_value,number_of_months)
例:(x¨¬)
SQL> select add_months(sysdate,12) "Next Year" from dual;
 (t¨©ng) (t¨©ng)
Next Year
----------
13-11�04
 (t¨©ng) (t¨©ng)
SQL> select add_months(sysdate,112) "Last Year" from dual;
 (t¨©ng) (t¨©ng)
Last Year
----------
13-3�-13
 (t¨©ng) (t¨©ng)
SQL> (t¨©ng) (t¨©ng)
 (t¨©ng) (t¨©ng)
2ã€current_date()˜q”回当å‰ä¼?x¨¬)放时区ä¸çš„当剿—¥æœ?
date_value:=current_date
SQL> column sessiontimezone for a15
SQL> select sessiontimezone,current_date from dual;
 (t¨©ng) (t¨©ng)
SESSIONTIMEZONE CURRENT_DA
--------------- ----------
+08:00 (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) 13-11æœ?03
 (t¨©ng) (t¨©ng)
SQL> alter session set time_zone='-11:00'
 (t¨©ng)  (t¨©ng)2 (t¨©ng) (t¨©ng)/
 (t¨©ng) (t¨©ng)
ä¼?x¨¬)è¯å·²æ›´æ”V€?
 (t¨©ng) (t¨©ng)
SQL> select sessiontimezone,current_timestamp from dual;
 (t¨©ng) (t¨©ng)
SESSIONTIMEZONE CURRENT_TIMESTAMP
--------------- ------------------------------------
-11:00 (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) 12-11æœ?03 04.59.13.668000 ä¸‹åˆ -11:
 (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng) (t¨©ng)00
 (t¨©ng) (t¨©ng)
SQL> (t¨©ng) (t¨©ng)
 (t¨©ng) (t¨©ng)
3ã€current_timestamp()以timestamp with time zone数殾cÕdž‹˜q”回当å‰ä¼?x¨¬)放时区ä¸çš„当剿—¥æœ?
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;
 (t¨©ng) (t¨©ng)
SESSIONTIMEZONE CURRENT_TIMESTAMP
--------------- ------------------------------------
+08:00 (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) 13-11æœ?03 11.56.28.160000 ä¸Šåˆ +08:
 (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng) (t¨©ng)00
 (t¨©ng) (t¨©ng)
SQL> alter session set time_zone='-11:00'
 (t¨©ng)  (t¨©ng)2 (t¨©ng) (t¨©ng)/
 (t¨©ng) (t¨©ng)
ä¼?x¨¬)è¯å·²æ›´æ”V€?
 (t¨©ng) (t¨©ng)
SQL> select sessiontimezone,current_timestamp from dual;
 (t¨©ng) (t¨©ng)
SESSIONTIMEZONE CURRENT_TIMESTAMP
--------------- ------------------------------------
-11:00 (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) 12-11æœ?03 04.58.00.243000 ä¸‹åˆ -11:
 (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng) (t¨©ng)00
 (t¨©ng) (t¨©ng)
SQL> (t¨©ng) (t¨©ng)
 (t¨©ng) (t¨©ng)
4ã€dbtimezone()˜q”回时区
varchar_value:=dbtimezone
SQL> select dbtimezone from dual;
 (t¨©ng) (t¨©ng)
DBTIME
------
-07:00
 (t¨©ng) (t¨©ng)
SQL> (t¨©ng) (t¨©ng)
 (t¨©ng) (t¨©ng)
5ã€extract()扑ևºæ—¥æœŸæˆ–é—´éš”å€¼çš„å—æ®µå€?
date_value:=extract(date_field from [datetime_value|interval_value])
SQL> select extract(month from sysdate) "This Month" from dual;
 (t¨©ng) (t¨©ng)
This Month
----------
 (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng)11
 (t¨©ng) (t¨©ng)
SQL> select extract(year from add_months(sysdate,36)) "3 Years Out" from dual;
 (t¨©ng) (t¨©ng)
3 Years Out
-----------
 (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng) (t¨©ng)2006
 (t¨©ng) (t¨©ng)
SQL> (t¨©ng) (t¨©ng)
 (t¨©ng) (t¨©ng)
6ã€last_day()˜q”回包å«äº?ji¨£n)æ—¥æœŸå‚æ•°çš„æœˆä†¾çš„æœ€åŽä¸€å¤©çš„æ—¥æœŸ
date_value:=last_day(date_value)
SQL> select last_day(date'2000-02-01') "Leap Yr?" from dual;
 (t¨©ng) (t¨©ng)
Leap Yr?
----------
29-2�-00
 (t¨©ng) (t¨©ng)
SQL> select last_day(sysdate) "Last day of this month" from dual;
 (t¨©ng) (t¨©ng)
Last day o
----------
30-11�03
 (t¨©ng) (t¨©ng)
SQL> (t¨©ng) (t¨©ng)
 (t¨©ng) (t¨©ng)
7ã€localtimestamp()˜q”回ä¼?x¨¬)è¯ä¸çš„æ—¥æœŸå’Œæ—¶é?
timestamp_value:=localtimestamp
SQL> column localtimestamp format a28
SQL> select localtimestamp from dual;
 (t¨©ng) (t¨©ng)
LOCALTIMESTAMP
----------------------------
13-11�03 12.09.15.433000
下åˆ
 (t¨©ng) (t¨©ng)
SQL> select localtimestamp,current_timestamp from dual;
 (t¨©ng) (t¨©ng)
LOCALTIMESTAMP (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng)CURRENT_TIMESTAMP
---------------------------- ------------------------------------
13-11æœ?03 12.09.31.006000 (t¨©ng)  (t¨©ng)13-11æœ?03 12.09.31.006000 ä¸‹åˆ +08:
下åˆÂ (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) 00
 (t¨©ng) (t¨©ng)
SQL> alter session set time_zone='-11:00';
 (t¨©ng) (t¨©ng)
ä¼?x¨¬)è¯å·²æ›´æ”V€?
 (t¨©ng) (t¨©ng)
SQL> select localtimestamp,to_char(sysdate,'DD-MM-YYYY HH:MI:SS AM') "SYSDATE" from dual;
 (t¨©ng) (t¨©ng)
LOCALTIMESTAMP (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng)SYSDATE
---------------------------- ------------------------
12-11æœ?03 05.11.31.259000 (t¨©ng)  (t¨©ng)13-11-2003 12:11:31 下åˆ
下åˆ
 (t¨©ng) (t¨©ng)
SQL> (t¨©ng) (t¨©ng)
 (t¨©ng) (t¨©ng)
8ã€months_between()判æ–两个日期之间的月份数é‡?
number_value:=months_between(date_value,date_value)
SQL> select months_between(sysdate,date'1971-05-18') from dual;
 (t¨©ng) (t¨©ng)
MONTHS_BETWEEN(SYSDATE,DATE'1971-05-18')
----------------------------------------
 (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) 389.855143
 (t¨©ng) (t¨©ng)
SQL> select months_between(sysdate,date'2001-01-01') from dual;
 (t¨©ng) (t¨©ng)
MONTHS_BETWEEN(SYSDATE,DATE'2001-01-01')
----------------------------------------
 (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) (t¨©ng)  (t¨©ng) 34.4035409
 (t¨©ng) (t¨©ng)
SQL> (t¨©ng) (t¨©ng)
 (t¨©ng) (t¨©ng)
9ã€next_day()¾l™å®šä¸€ä¸ªæ—¥æœŸå€û|¼Œ˜q”回ç”Þq¬¬äºŒä¸ªå‚数指出的日å第一‹Æ¡å‡ºçŽ°åœ¨çš„æ—¥æœŸå€û|¼ˆåº”返回相应日åçš„åç§°å—符ä¸ÔŒ¼‰(j¨ª)
10ã€date = to_date('2005-3-16 16:55:36','YYYY-MM-DD HH24:MI:SS');

]]>