oracle日期函式(1)

jss001發表於2009-02-16

trunc(sysdate,'Q') --本季度第一天

trunc(sysdate,'D') --本週的第一天(週日)

查詢Oracle日期格式
----------------------------------

select * from nls_database_parameters;

得到結果如下表: 表中NLS_DATE_FORMAT表示日期格式.
PARAMETER VALUE
----------------------------------- -----------------------------------
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CHARACTERSET ZHS16GBK
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZH:TZM
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZH:TZM
NLS_DUAL_CURRENCY $
NLS_COMP BINARY
NLS_NCHAR_CHARACTERSET ZHS16GBK
NLS_RDBMS_VERSION 8.1.7.0.0

或者查詢V$NLS_PARAMETERS表,
select * from V$NLS_PARAMETERS;
也有類似結果.

to_date 字串型別轉為換日期型別
字串中的相應位置上的字元,必須符合時間範圍的限制

SQL>select to_date('2004-11-12 12-07-32','yyyy-mm-dd hh24-mi-ss') value from dual;
VALUE
-------------------
2004.11.12 12:07:32

SQL>select to_date('20041015') value from dual;
VALUE
-------------------
2004.10.15 00:00:00

SQL>select to_date('20041315') value from dual;
ERROR 位於第 1 行:
ORA-01861: 文字與格式字串不匹配

sysdate 當前日期和時間

SQL>select sysdate value from dual;
VALUE
-------------------
2003.11.23 17:09:01

last_day 本月最後一天

SQL>select last_day(sysdate) value from dual;
VALUE
-------------------
2003.11.30 17:08:17

add_months(d,n) 日期d後推n個月

SQL>select add_months(sysdate,2) value from dual;
VALUE
-------------------
2005.01.23 17:10:21

next_day(d,day) 日期d之後的第一週中,指定的那天(指定星期的第幾天)是什麼日期

SQL>select next_day(sysdate,1) value from dual;
VALUE
-------------------
2004.11.28 17:38:55

相信很多人都有過統計某些資料的經歷,比如,要統計財務的情況,可能要按每年,每季度,每月,甚至每個星期來分別統計。那在oracle中應該怎麼來寫sql語句呢,這個時候Oracle的日期函式會給我們很多幫助。[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/18921899/viewspace-1017434/,如需轉載,請註明出處,否則將追究法律責任。

相關文章