隨筆-204  評論-90  文章-8  trackbacks-0

          EXTRACT extracts and returns the value of a specified datetime field from a datetime or interval value expression.
          The field you are extracting must be a field of the datetime_value_expr or interval_value_expr. For example, you can extract only YEAR, MONTH, and DAY from a DATE value. Likewise, you can extract TIMEZONE_HOUR and TIMEZONE_MINUTE only from the TIMESTAMP WITH TIME ZONE datatype.
          eg.

          • SELECT EXTRACT(YEAR FROM SYSDATE) FROM DUAL; return Current Year
          • SELECT EXTRACT(MONTH FROM SYSDATE) FROM DUAL; return Current Month
          • SELECT EXTRACT(DAY FROM SYSDATE) FROM DUAL; return Current Day
          • SELECT EXTRACT(HOUR FROM SYSDATE) FROM DUAL;Error
                 Correct:SELECT EXTRACT(HOUR FROM TIMESTAMP '2005-10-10 10:10:10') FROM DUAL;
          • SELECT EXTRACT(MINUTE FROM SYSDATE) FROM DUAL;Error
                 Correct:SELECT EXTRACT(MINUTE FROM TIMESTAMP '2005-10-10 10:10:10') FROM DUAL;

                 以上是EXTRACT()函數的使用說明,英文部分有個很重要的部分.就是extract 抽取年月日部分和時分部分的使用方法是不同的.
          EXTRACT(YEAR FROM SYSDATE)中FROM 的下一個參數是日期類型的時候可以抽取年月日.就是說這個參數是日期類型的時候就可以抽取年\月\日,而抽取不了時\分部分.抽取時分部分得在FROM 后面加帶TIMESTAMP 且后面加時間字符.
             這里要注意,在(MINUTE FROM TIMESTAMP '2005-10-10 10:10:10')中,如果把'2005-10-10 10:10:10'用日期類型的字段來代替并轉換成字符類型后,也是錯誤的,估計是這方法的問題.
              比如(MINUTE FROM TIMESTAMP to_date(to_char(日期類型,'YYYY-MM-DD hh24:mi:ss'),'YYYY-MM-DD hh24:mi:ss')),這樣執行不了的.


              如果真要從日期類型的字段中抽取時\分部分用to_char() 函數就可以了.比如to_char(日期類型,'hh24:mi') 


          posted on 2008-04-07 15:24 一凡 閱讀(1298) 評論(1)  編輯  收藏 所屬分類: DATABASE

          評論:
          # re: Oracle EXTRACT()函數與to_char() 函數 2008-04-12 10:46 | 豆抓搜索
          oracle 我的老出問題 http://www.douzhua.com  回復  更多評論
            
          主站蜘蛛池模板: 禹城市| 徐汇区| 林甸县| 高平市| 罗江县| 禄劝| 淮阳县| 虞城县| 峨边| 丰县| 无棣县| 石泉县| 丹阳市| 瑞金市| 广安市| 织金县| 右玉县| 南投市| 四平市| 长兴县| 五台县| 安阳县| 定远县| 南溪县| 盘锦市| 远安县| 三门峡市| 竹山县| 东辽县| 梅州市| 东海县| 镇远县| 西青区| 东莞市| 化德县| 老河口市| 和顺县| 洪湖市| 平远县| 丁青县| 图木舒克市|