隨筆-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 一凡 閱讀(1293) 評論(1)  編輯  收藏 所屬分類: DATABASE

          評論:
          # re: Oracle EXTRACT()函數與to_char() 函數 2008-04-12 10:46 | 豆抓搜索
          oracle 我的老出問題 http://www.douzhua.com  回復  更多評論
            
          主站蜘蛛池模板: 濉溪县| 阿瓦提县| 镇巴县| 黄浦区| 陈巴尔虎旗| 黄冈市| 绥棱县| 德钦县| 和田市| 堆龙德庆县| 商河县| 定边县| 长阳| 阜宁县| 开平市| 惠州市| 益阳市| 吴川市| 汶上县| 巩义市| 湖口县| 葫芦岛市| 将乐县| 正蓝旗| 米脂县| 芦溪县| 和顺县| 焉耆| 青岛市| 杭锦旗| 榆中县| 北宁市| 那曲县| 迁安市| 灵川县| 洪雅县| 大港区| 怀仁县| 濮阳县| 泸水县| 拜城县|