oracle to_char函數使用

來源:互聯網
上載者:User

標籤:dlx   rod   一起   空白   使用   例子   div   實現   str   

Postgres 格式化函數提供一套有效工具用於把各種資料類型(日期/時間,int,float,numeric)轉換成格式化的字串以及反過來從格式化的字串轉換成原始的資料類型。

注意:所有格式化函數的第二個參數是用於轉換的模板。

表 5-7. 格式化函數 
 

函數 返回 描述 例子
to_char(timestamp, text) text 把 timestamp 轉換成 string to_char(timestamp ‘now‘,‘HH12:MI:SS‘)
to_char(int, text) text 把 int4/int8 轉換成 string to_char(125, ‘999‘)
to_char(float, text) text 把 float4/float8 轉換成 string to_char(125.8, ‘999D9‘)
to_char(numeric, text) text 把 numeric 轉換成 string to_char(numeric ‘-125.8‘, ‘999D99S‘)
to_date(text, text) date 把 string 轉換成 date to_date(‘05 Dec 2000‘, ‘DD Mon YYYY‘)
to_timestamp(text, text) date 把 string 轉換成 timestamp to_timestamp(‘05 Dec 2000‘, ‘DD Mon YYYY‘)
to_number(text, text) numeric 把 string 轉換成 numeric to_number(‘12,454.8-‘, ‘99G999D9S‘)

表 5-8. 用於 date/time 轉換的模板 
 

模板 描述
HH 一天的小時數 (01-12)
HH12 一天的小時數 (01-12)
HH24 一天的小時數 (00-23)
MI 分鐘 (00-59)
SS 秒 (00-59)
SSSS 午夜後的秒 (0-86399)
AM or A.M. or PM or P.M. 正午標識(大寫)
am or a.m. or pm or p.m. 正午標識(小寫)
Y,YYY 帶逗號的年(4 和更多位)
YYYY 年(4和更多位)
YYY 年的後三位
YY 年的後兩位
Y 年的最後一位
BC or B.C. or AD or A.D. 年標識(大寫)
bc or b.c. or ad or a.d. 年標識(小寫)
MONTH 全長大寫月份名(9字元)
Month 全長混合大小寫月份名(9字元)
month 全長小寫月份名(9字元)
MON 大寫縮寫月份名(3字元)
Mon 縮寫混合大小寫月份名(3字元)
mon 小寫縮寫月份名(3字元)
MM 月份 (01-12)
DAY 全長大寫日期名(9字元)
Day 全長混合大小寫日期名(9字元)
day 全長小寫日期名(9字元)
DY 縮寫大寫日期名(3字元)
Dy 縮寫混合大小寫日期名(3字元)
dy 縮寫小寫日期名(3字元)
DDD 一年裡的日子(001-366)
DD 一個月裡的日子(01-31)
D 一周裡的日子(1-7;SUN=1)
W 一個月裡的周數
WW 一年裡的周數
CC 世紀(2 位)
J Julian 日期(自公元前4712年1月1日來的日期)
Q 季度
RM 羅馬數位月份(I-XII;I=JAN)-大寫
rm 羅馬數位月份(I-XII;I=JAN)-小寫

所有模板都都允許使用首碼和尾碼修改器。模板裡總是允許使用修改器。首碼 ‘FX‘ 只是一個全域修改器。

表 5-9. 用於日期/時間模板 to_char() 的尾碼 
 

尾碼 描述 例子
FM 填充模式首碼 FMMonth
TH 大寫順序數尾碼 DDTH
th 小寫順序數尾碼 DDTH
FX 固定模式全域選項(見下面) FX Month DD Day
SP 拼字模式(還未實現) DDSP

用法須知:

  • 如果沒有使用 FX 選項,to_timestamp 和 to_date 忽略空白。FX 必須做為模板裡的第一個條目聲明。
  • 反斜線("\")必須用做雙反斜線("\\"),例如 ‘\\HH\\MI\\SS‘。
  • 雙引號(‘"‘)之間的字串被忽略並且不被分析。如果你想向輸出寫雙引號,你必須在雙引號前面放置一個雙反斜線(‘\\‘),例如 ‘\\"YYYY Month\\"‘。
  • to_char 支援不帶前置雙引號(‘"‘)的文本,但是在雙引號之間的任何字串會被迅速處理並且還保證不會被當作模板關鍵字解釋(例如:‘"Hello Year: "YYYY‘)。

表 5-10. 用於 to_char(numeric) 的模板 
 

模板 描述
9 帶有指定位元的值
0 前置字元為零的值
. (句點) 小數
, (逗號) 分組(千)分隔字元
PR 角括弧內負值
S 帶負號的負值(使用本地化)
L 貨幣符號(使用本地化)
D 小數點(使用本地化)
G 分組分隔字元(使用本地化)
MI 在指明的位置的負號(如果數字 < 0)
PL 在指明的位置的正號(如果數字 > 0)
SG 在指明的位置的正/負號
RN 羅馬數字(輸入在 1 和 3999 之間)
TH or th 轉換成序數
V 移動 n 位(小數)(參閱註解)
EEEE 科學記數。現在不支援。

用法須知:

  • 使用 ‘SG‘,‘PL‘ 或 ‘MI‘ 的帶符號字並不附著在數字上面;例如,to_char(-12, ‘S9999‘) 產生 ‘ -12‘,而 to_char(-12, ‘MI9999‘) 產生 ‘- 12‘。Oracle 裡的實現不允許在 9 前面使用 MI,而是要求 9 在 MI 前面。
  • PL,SG,和 TH 是 Postgres 擴充。
  • 9 表明一個與在 9 字串裡面的一樣的數字位元。如果沒有可用的數字,那麼使用一個空白(空格)。
  • TH 不轉換小於零的值,也不轉換小數。TH 是一個 Postgres 擴充。
  • V 方便地把輸入值乘以 10^n,這裡 n 是跟在 V 後面的數字。to_char 不支援把 V 與一個小數點綁在一起使用(例如. "99.9V99" 是不允許的)。

表 5-11. to_char 例子 
 

輸入 輸出
to_char(now(),‘Day, HH12:MI:SS‘) ‘Tuesday , 05:39:18‘
to_char(now(),‘FMDay, HH12:MI:SS‘) ‘Tuesday, 05:39:18‘
to_char(-0.1,‘99.99‘) ‘ -.10‘
to_char(-0.1,‘FM9.99‘) ‘-.1‘
to_char(0.1,‘0.9‘) ‘ 0.1‘
to_char(12,‘9990999.9‘) ‘ 0012.0‘
to_char(12,‘FM9990999.9‘) ‘0012‘
to_char(485,‘999‘) ‘ 485‘
to_char(-485,‘999‘) ‘-485‘
to_char(485,‘9 9 9‘) ‘ 4 8 5‘
to_char(1485,‘9,999‘) ‘ 1,485‘
to_char(1485,‘9G999‘) ‘ 1 485‘
to_char(148.5,‘999.999‘) ‘ 148.500‘
to_char(148.5,‘999D999‘) ‘ 148,500‘
to_char(3148.5,‘9G999D999‘) ‘ 3 148,500‘
to_char(-485,‘999S‘) ‘485-‘
to_char(-485,‘999MI‘) ‘485-‘
to_char(485,‘999MI‘) ‘485‘
to_char(485,‘PL999‘) ‘+485‘
to_char(485,‘SG999‘) ‘+485‘
to_char(-485,‘SG999‘) ‘-485‘
to_char(-485,‘9SG99‘) ‘4-85‘
to_char(-485,‘999PR‘) ‘<485>‘
to_char(485,‘L999‘) ‘DM 485
to_char(485,‘RN‘) ‘ CDLXXXV‘
to_char(485,‘FMRN‘) ‘CDLXXXV‘
to_char(5.2,‘FMRN‘) V
to_char(482,‘999th‘) ‘ 482nd‘
to_char(485, ‘"Good number:"999‘) ‘Good number: 485‘
to_char(485.8,‘"Pre-decimal:"999" Post-decimal:" .999‘) ‘Pre-decimal: 485 Post-decimal: .800‘
to_char(12,‘99V999‘) ‘ 12000‘
to_char(12.4,‘99V999‘) ‘ 12400‘
to_char(12.45, ‘99V9‘) ‘ 125‘

oracle to_char函數使用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.