PL/SQL 類型格式轉換
2024-08-29 13:57:17
供稿:網友
TO_NUMBER(char[,'format_model']) 字符轉換到數字類型
TO_DATE(char[,'format_model']) 字符轉換到日期類型
格式說明符:要與前邊要轉換的字符串的格式要相同才能轉換(匹配問題:格式和位數)。
TO_CHAR(date[,'format_model'[,nlsparams]])
第二個參數可以省略,不指定格式,按系統默認格式輸出。
區分大小寫。
使用FM(在格式控制符前添加)符號可以去掉空格或是首位的零。
如果指定了NLSPARAMS,則它控制返回字符串的月和日分量所使用的語言。格式為:
'NLS_DATA_LANGUAGE=language',language指需要的語言。
例:
select to_char(sysdate,'FMyyyy-mm-dd') from dual;
格式控制符的類型:
YYYY 四位的年
YEAR 年的拼寫
MM 2位數字的月
MONTH 月的全名
MON 月名的前三個字符
DY 星期名的前三個字符
DAY 星期名的全稱
DD 2位的天
時間格式控制符:
HH24:MI:SS AM
HH12:MI:SS PM
通過“”來實現加入特殊字符的格式控制符。
SELECT TO_CHAR(SYSDATE,'FMyyyy"年"mm"月"dd"日"') from dual;
DDSPTH
~~
DD是格式控制符。
TH是序數詞,將日期轉換成英文的序數詞拼寫。
SP是基數詞,將日期轉換成英文的基數詞拼寫。
TO_CHAR(NUM[,'format_model'[,nlsparams]])轉換數字
將NUMBER類型參數NUM轉換成VARCHAR2類型。如果指定FORMAT,它會控制整個轉換。
如果沒有指定FORMAT,那么結果字符串中將包含和NUM中有效位的個數相同的字符。NLSPARAMS用來指定小數點和千分符及貨幣符號。它的格式可為:'NLS_NUMERIC_CHARS=' ' dg ' 'NLS_CURRENCY= ' 'string' ' '
d和g分別代表小數點和千分符。STRING代表貨幣符號。
數字格式控制符:
9 代表一位數字(替換符。有,數字顯示;沒有。不什么都顯示。)
0 代表一位數字(有數字,顯示;沒有,強制顯示0。)
$ 美圓符號
L 本地貨幣
. 小數點
, 千分符
B 當整數部分為0時,將整數部分填充為空格。 例:B999
MI 返回帶有后繼符號而不是前導負號的負數值,正數值將帶有后繼的空格。999MI
S 返回一個前導符號或后繼符號,正數為+,負數為-。 S9999 或 9999S
PR 使用尖括號返回負數。正數將有前導或后繼空格。999PR
D 在指定位置返回一個小數點。兩側的9的個數指定了最大的位數。99D9
G 在指定位置返回千分符,G可以在FORMAT_model中出現多次。9G999G9
C 在指定位置返回ISO貨幣符號。C可以在FORMAT_model中出現多次。C99
L 在指定位置上返回本地貨幣符號。 L99
V 返回一個被乘以10的N次方的數值,這里N是V后邊9的個數。99V99
EEEE 使用科學記數法返回該數值。9.99EEEE
RM 使用大寫的羅馬數字表示返回該數值。 RM
rm 使用小寫的羅馬數字表示返回該數值。 rm
FM 返回不含前導和后繼空格的數值。 FM99.09
格式控制符位數一定要大于或等于NUMBER的位數,不能小于。