風人園

          弱水三千,只取一瓢,便能解渴;佛法無邊,奉行一法,便能得益。
          隨筆 - 99, 文章 - 181, 評論 - 56, 引用 - 0
          數據加載中……

          oracle 日期函數介紹

          在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
          ??
          SQL> alter session set time_zone='-11:00';
          ??
          會話已更改。
          ??
          SQL> select localtimestamp,to_char(sysdate,'DD-MM-YYYY HH:MI:SS AM') "SYSDATE" from dual;
          ??
          LOCALTIMESTAMP? ?? ?? ?? ?? ?SYSDATE
          ---------------------------- ------------------------
          12-11月-03 05.11.31.259000? ?13-11-2003 12:11:31 下午
          下午
          ??
          SQL>??
          ??
          8、months_between()判斷兩個日期之間的月份數量
          number_value:=months_between(date_value,date_value)
          SQL> select months_between(sysdate,date'1971-05-18') from dual;
          ??
          MONTHS_BETWEEN(SYSDATE,DATE'1971-05-18')
          ----------------------------------------
          ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 389.855143
          ??
          SQL> select months_between(sysdate,date'2001-01-01') from dual;
          ??
          MONTHS_BETWEEN(SYSDATE,DATE'2001-01-01')
          ----------------------------------------
          ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 34.4035409
          ??
          SQL>??
          ??
          9、next_day()給定一個日期值,返回由第二個參數指出的日子第一次出現在的日期值(應返回相應日子的名稱字符串)

          10、date = to_date('2005-3-16 16:55:36','YYYY-MM-DD HH24:MI:SS');


          posted on 2007-02-12 15:39 風人園 閱讀(272) 評論(0)  編輯  收藏 所屬分類: Oracle

          主站蜘蛛池模板: 墨竹工卡县| 泰兴市| 宝丰县| 黄大仙区| 大安市| 阿鲁科尔沁旗| 清原| 威远县| 锦州市| 上蔡县| 长武县| 志丹县| 西和县| 亚东县| 察哈| 彰化市| 阜康市| 萨嘎县| 夹江县| 张家界市| 宁远县| 长汀县| 长治县| 班戈县| 汨罗市| 原平市| 三江| 讷河市| 西吉县| 海阳市| 手游| 凤阳县| 长宁县| 兴和县| 安福县| 丹棱县| 马关县| 策勒县| 湟中县| 八宿县| 敦煌市|