ORACLE范例:
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
SELECT EXTRACT(HOUR FROM TIMESTAMP '2005-10-10 10:10:10') FROM DUAL;// Correct
SELECT EXTRACT(MINUTE FROM SYSDATE) FROM DUAL;//Error
SELECT EXTRACT(MINUTE FROM TIMESTAMP '2005-10-10 10:10:10') FROM DUAL;// Correct
以上是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')