To_char、to_date、to_number
TO_CHAR 是把日期或數字轉換為字串
TO_DATE 是把字串轉換為資料庫中得日期類型轉換函式
TO_NUMBER 將字元轉化為數字
TO_CHAR²
使用TO_CHAR函數處理數字
TO_CHAR(number, '格式')
TO_CHAR(salary,’$99,999.99’);
使用TO_CHAR函數處理日期
TO_CHAR(date,’格式’);
TO_NUMBER²
使用TO_NUMBER函數將字元轉換為數字
TO_NUMBER(char[, '格式'])
TO_DATE²
使用TO_DATE函數將字元轉換為日期
TO_DATE(char[, '格式'])
數字格式格式²
9 代表一個數字
0 強制顯示0
$ 放置一個$符
L 放置一個浮動本地貨幣符
. 顯示小數點
, 顯示千位指示符
日期格式²
格式控制 描述
YYYY、YYY、YY 分別代表4位、3位、2位的數字年
YEAR 年的拼字
MM 數字月
MONTH 月的全拼
MON 月的縮寫
DD 數字日
DAY 星期的全拼
DY 星期的縮寫
AM 表示上午或者下午
HH24、HH12 12小時制或24小時制
MI 分鐘
SS 秒鐘
SP 數位拼字
TH 數位序數詞
“特殊字元” 假如特殊字元
HH24:MI:SS AM 15:43:20 PM
日期例子:
SELECT TO_DATE('2006-05-01 19:25:34', 'YYYY-MM-DD HH24:MI:SS') FROM DUAL
SELECT TO_DATE('2006-05-01 19:25', 'YYYY-MM-DD HH24:MI') FROM DUAL
SELECT TO_DATE('2006-05-01 19', 'YYYY-MM-DD HH24') FROM DUAL
SELECT TO_DATE('2006-05-01', 'YYYY-MM-DD') FROM DUAL
SELECT TO_DATE('2006-05', 'YYYY-MM') FROM DUAL
SELECT TO_DATE('2006', 'YYYY') FROM DUAL
日期說明:
當省略HH、MI和SS對應的輸入參數時,Oracle使用0作為DEFAULT值。如果輸入的日期資料忽略時間部分,Oracle會將時、分、秒部分都置為0,也就是說會取整到日。
同樣,忽略了DD參數,Oracle會採用1作為日的預設值,也就是說會取整到月。
但是,不要被這種“慣性”所迷惑,如果忽略MM參數,Oracle並不會取整到年,取整到當前月。
注意:
1.在使用Oracle的to_date函數來做日期轉換時,可能會直覺地採用“yyyy-MM-dd HH:mm:ss”的格式作為格式進行轉換,但是在Oracle中會引起錯誤:“ORA 01810 格式代碼出現兩次”。如:select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mm:ss') from dual;原因是SQL中不區分大小寫,MM和mm被認為是相同的格式代碼,所以Oracle的SQL採用了mi代替分鐘。select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from dual;
2.另要以24小時的形式顯示出來要用HH24
select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;//mi是分鐘
select to_char(sysdate,'yyyy-MM-dd HH24:mm:ss') from dual;//mm會顯示月份