您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“Oracle中轉換函數有哪些”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Oracle中轉換函數有哪些”這篇文章吧。
TO_CHAR函數返回VARCHAR2數據類型的值。當將它應用于NUMBER數據類型的值時TO_CHAR(num1[,format mask[,nls_parameters]])
num參數是強制性的,它必須是一個數字值。可選的format參數用來指定數字格式信息——例如寬度、貨幣符號、小數點的位置和組(或者千位)分隔符,必須將它們包含在單引號內。除此之外,對于要轉換為字符的數字而言,還有其他一些格式信息的選項。
select to_char(00001) from dual;
select to_char(00001,'099999') from dual;
TO_CHAR函數將數據轉換為字符
格式元素 | 元素說明 | 格式 | 數字 | 字符結果 |
9 | 數字寬度 | 9999 | 12 | 12 |
0 | 顯示前面的0 | 09999 | 0012 | 00012 |
. | 小數點的位置 | 09999.999 | 030.40 | 00030.400 |
D | 小數分隔符的位置(默認為名點) | 09999D999 | 030.40 | 00030.400 |
, | 逗號的位置 | 09999,999 | 03040 | 00003,040 |
G | 組分隔符的位置(默認為逗號) | 09999G999 | 03040 | 00003,040 |
$ | 美元 | $099999 | 03040 | $003040 |
L | 當地貨幣 | L099999 | 03040 | GBP003040(如果nls_currency設置為GBP) |
MI | 表示負數的減號的位置 | 99999MI | -3040 | 3040- |
PR | 包圍在括號內的負數 | 99999PR | -3040 | <3040> |
EEEE | 科學計數法 | 99.99999EEEE | 121.976 | 1.21976E+02 |
U | Nls_dual_currency | U099999 | 03040 | CAD003040(如果nls_dual_currency設置為CAD) |
V | 乘以10n次(n是V之后9的數量) | 9999V99 | 3040 | 304000 |
S | 前面加上+或者- | S999999 | 3040 | +3040 |
使用TO_CHAR函數,可以利用各種格式模型將DATE項轉換為幾乎所有日期的字符表示形式。
語法:TO_CHAR(date1[,format[,nls_parameter]])
只有date1參數是強制的,date1必須是可以被隱式轉換為日期的值。可選的format參數區分大小寫,必須獎它包含在單引號內。格式掩碼指定哪些日期元素,是用長的名稱還是用縮寫名稱來描述這個元素。還會自動給日和月的名稱填充空格。可以使用格式掩碼的修飾符來刪除這些空格,這個修飾符稱為填充模式(fm)運算符。在格式模型之前添加字母fm,就會命令Oracle從日和月的名稱中刪除所有空格。對于被轉換為字符串的日期而言還有許多格式選項。
select to_char(sysdate) || ' is today''s date' from dual;
select to_char(sysdate,'Month') || 'is special time ' from dual;
select to_char(sysdate,'fmMonth') || 'is special time ' from dual;
to_char把日期轉換為字符串
假設格式元素作用于日期02-JUN-1975
格式元素 | 說明 | 結果 |
Y | 年的最后一位 | 5 |
YY | 年的最后兩位 | 75 |
YYY | 年的最后三位 | 975 |
YYYY | 4位數字表示的年 | 1975 |
RR | 兩們數字表示的年(已知世紀) | 75 |
YEAR,year,Year | 區分大小寫并用英語拼寫的年 | NINETEEN SEVENTY FIVE, Nineteen seventy five, Nineteen Seventy Five |
MM | 兩位數表示的月 | 06 |
MON,mon,Mon | 月的三個字母縮寫 | JUN,jun,Jun |
MONTH,month,Month | 區分大小寫并用英語拼寫的月 | JUNE,june,June |
D | 星期的第幾天 | 2 |
DD | 月的兩位數日 | 02 |
DDD | 年的日 | 153 |
DY,dy,Dy | 星期的三個字母縮寫 | MON,mon,Mon |
DAY,day,Day | 區分大小寫并用英語拼寫的星期 | MONDAY,Monday,Monday |
提取日期時間數據類型的時間部分,表中使用的日期為27-JUN-2010 21:35:13
格式元素 | 說明 | 結果 |
AM,PM,A.M.和P.M. | 子午線指示器 | PM |
HH、HH2和HH24 | 一天的小時,1-12時和0-23時 | 09,09,21 |
MI | 分(0~59) | 35 |
SS | 秒(0~59) | 13 |
SSSSS | 午夜之后的秒(0~86399) | 77713 |
其他一些能夠在日期時間格式模型中使用的元素。標點符號用來分隔格式元素。有三種類型的后綴可以格式化日期時間元素的組件。而且,如果將字符字面值包含在雙引號內,那么就能夠在返回值中包含它們。使用日期12/SEP/08 14:31
格式元素 | 說明和格式掩碼 | 結果 |
/ . , ? # ! - | 標點符號:’MM.YY’ | 09.08 |
“any character literal” | 字符字面值:’”Week” W “of” Month’ | Week 2 of September |
TH | 位置或者序數文本:’DDth ”of” Month’ | 12TH of September |
SP | 拼寫出數字:’MmSP month Yyyysp’ | Nine September Two Thousand Eight |
THSP or SPTH | 拼寫出位置或者序數:’hh34SpTh’ | Fourteenth |
TO_DATE函數返回DATE類型的值。轉換為日期的字符串可能包含所有或者部分組成DATE的日期時間元素。當只轉換包含日期時間元素子集的字符串時,Oracle提供資金默認值來構造完整的日期。字符串的組成部分通過格式模型或掩碼與不同的日期時間元素相關聯。
語法:TO_DATE(string1[,format,[nls_parameter]])
只有string1參數是強制性的,如果沒有提供格式掩碼,string1會隱式轉換為日期。幾乎總是使用可選的fromat參數,在單引號內指定它,與TO_CHAR的格式掩碼相同。TO_DATE函數有fx修飾,表示string1和格式掩碼必須完全匹配,否則報錯。
select to_date('25-DEC-2010') from dual;
select to_date('25-DEC') from dual; --錯誤
select to_date('25-DEC','DD-MON') from dual;
select to_date('25-DEC-2010 18:03:45','DD-MON-YYYY HH24:MI:SS') from dual;
select to_date('25-DEC-10','fxDD-MON-YYYY') from dual;--錯誤
TO_NUMBER函數返回NUMBER類型的值。轉換為數字的字符串必須有合適的格式,以便用相應的格式掩碼轉換或刪除所有非數字組成部分。
語法:TO_NUMBER(string1[,format,[nls_parameter]])
只有string1參數是強制性的,如果沒有提供格式掩碼,string1就必須是可以隱式轉換為數字的值。用單引號指定可選的format參數。與TO_CHAR轉換數字到字符串中的格式掩碼相同。
select to_number('$1,000.55') from dual;--錯誤
select to_number('$01,000.55','$0999,999.999') from dual;
注:TO_NUMBER函數將字符項轉換為數字。如果使用較短的格式掩碼轉換數字,就會返回錯誤,如果使用較長的格式掩碼轉換數字,就會返回原數字。
以上是“Oracle中轉換函數有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。