最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Oracle to_char函數(shù)的使用方法

 更新時(shí)間:2014年08月12日 17:14:42   投稿:mdxy-dxy  
在Oracle數(shù)據(jù)庫(kù)中,to_char函數(shù)是我們最常用的函數(shù)之一,下文對(duì)to_char函數(shù)的應(yīng)用作了詳細(xì)的介紹,如果您感興趣的話,不妨一看

Oracle to_char函數(shù)的功能是將數(shù)值型或者日期型轉(zhuǎn)化為字符型,下面就為您詳細(xì)介紹Oracle to_char函數(shù)的使用,希望對(duì)您能有所幫助。

Postgres 格式化函數(shù)提供一套有效的工具用于把各種數(shù)據(jù)類型(日期/時(shí)間,int,float,numeric)轉(zhuǎn)換成格式化的字符串以及反過(guò)來(lái)從格式化的字符串轉(zhuǎn)換成原始的數(shù)據(jù)類型。
注意:所有格式化函數(shù)的第二個(gè)參數(shù)是用于轉(zhuǎn)換的模板。

表 5-7. 格式化函數(shù)

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

表 5-8. 用于 date/time 轉(zhuǎn)換的模板

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

所有模板都都允許使用前綴和后綴修改器。模板里總是允許使用修改器。前綴 'FX' 只是一個(gè)全局修改器。

表 5-9. 用于日期/時(shí)間模板 to_char() 的后綴

后綴 描述 例子
FM 填充模式前綴 FMMonth
TH 大寫順序數(shù)后綴 DDTH
th 小寫順序數(shù)后綴 DDTH
FX 固定模式全局選項(xiàng)(見(jiàn)下面) FX Month DD Day
SP 拼寫模式(還未實(shí)現(xiàn)) DDSP

用法須知:

  • 如果沒(méi)有使用 FX 選項(xiàng),to_timestampto_date 忽略空白。FX 必須做為模板里的第一個(gè)條目聲明。
  • 反斜杠("\")必須用做雙反斜杠("\\"),例如 '\\HH\\MI\\SS'。
  • 雙引號(hào)('"')之間的字串被忽略并且不被分析。如果你想向輸出寫雙引號(hào),你必須在雙引號(hào)前面放置一個(gè)雙反斜杠('\\'),例如 '\\"YYYY Month\\"'。
  • to_char 支持不帶前導(dǎo)雙引號(hào)('"')的文本,但是在雙引號(hào)之間的任何字串會(huì)被迅速處理并且還保證不會(huì)被當(dāng)作模板關(guān)鍵字解釋(例如:'"Hello Year: "YYYY')。

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

模板 描述
9 帶有指定位數(shù)的值
0 前導(dǎo)零的值
. (句點(diǎn)) 小數(shù)點(diǎn)
, (逗號(hào)) 分組(千)分隔符
PR 尖括號(hào)內(nèi)負(fù)值
S 帶負(fù)號(hào)的負(fù)值(使用本地化)
L 貨幣符號(hào)(使用本地化)
D 小數(shù)點(diǎn)(使用本地化)
G 分組分隔符(使用本地化)
MI 在指明的位置的負(fù)號(hào)(如果數(shù)字 < 0)
PL 在指明的位置的正號(hào)(如果數(shù)字 > 0)
SG 在指明的位置的正/負(fù)號(hào)
RN 羅馬數(shù)字(輸入在 1 和 3999 之間)
TH or th 轉(zhuǎn)換成序數(shù)
V 移動(dòng) n 位(小數(shù))(參閱注解)
EEEE 科學(xué)記數(shù)?,F(xiàn)在不支持。

用法須知:

  • 使用 'SG','PL' 或 'MI' 的帶符號(hào)字并不附著在數(shù)字上面;例如,to_char(-12, 'S9999') 生成 ' -12',而 to_char(-12, 'MI9999') 生成 '- 12'。Oracle 里的實(shí)現(xiàn)不允許在 9 前面使用 MI,而是要求 9MI 前面。
  • PL,SG,和 THPostgres 擴(kuò)展。
  • 9 表明一個(gè)與在 9 字串里面的一樣的數(shù)字位數(shù)。如果沒(méi)有可用的數(shù)字,那么使用一個(gè)空白(空格)。
  • TH 不轉(zhuǎn)換小于零的值,也不轉(zhuǎn)換小數(shù)。TH 是一個(gè) Postgres 擴(kuò)展。
  • V 方便地把輸入值乘以 10^n,這里 n 是跟在 V 后面的數(shù)字。to_char 不支持把 V 與一個(gè)小數(shù)點(diǎn)綁在一起使用(例如. "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函數(shù)最簡(jiǎn)單的應(yīng)用:

/*1.0123--->'1.0123'*/
Select TO_CHAR(1.0123) FROM DUAL
/*123--->'123'*/
Select TO_CHAR(123) FROM DUAL

接下來(lái)再看看下面:

/*0.123 ---> '.123' */
SELEC TO_CHAR(0.123) FROM DUAL

上面的結(jié)果 '.123' 在大多數(shù)情況下都不是我們想要的結(jié)果,我們想要的應(yīng)該是 '0.123'。

我們來(lái)看一下to_char函數(shù)的具體用法:

TO_CHAR ( n [, fmt [, 'nlsparam']] )

Oracle to_char函數(shù)將NUMBER類型的n按數(shù)值格式fmt轉(zhuǎn)換成VARCHAR2類型的值。'nlsparams'指定由數(shù)值格式的元素返回的字符,包括:

.小數(shù)點(diǎn)字符
.組分隔符
.本地錢幣符號(hào)
.國(guó)際錢幣符號(hào)

變?cè)男问綖椋?/p>

'NLS_NUMERIC_CHARACTERS="dg" NLS_CURRENCY="tcxt" NLS_ISO_CURRENCY=territory'

其中d為小數(shù)點(diǎn)字符,g為組分隔符。

例 :TO_CHAR (17145,'L099G999','NLS_NUMERIC_CHARACTERS=".," NLS_CURRENCY="NUD"')=NUD017,145
通過(guò)上面的了解,再查看fmt的一些格式,我們可以用以下表達(dá)式得到'0.123'的值:

/*0.123 ---> ' 0.123' */
Select TO_CHAR(0.123,'0.999') FROM DUAL
/*100.12 ---> '######' */
Select TO_CHAR(100.12,'0.999') FROM DUAL
/*1.12 ---> ' 1.120' */
Select TO_CHAR(1.12,'0.999') FROM DUAL
' 0.123'是出來(lái)了,可是前面又多了一個(gè)空格。

對(duì)于 100.12 的值卻是######,以及'1.12'的值變成了 '1.120'。

我們重新確定一個(gè)新的需求:

1、去空格
2、小數(shù)點(diǎn)最多4位,最少保留2位。

1--->'1.00';1.1--->'1.00';1.12-->'1.12';1.1234--->'1.1234';

1.12345--->'1.1235'

最終實(shí)現(xiàn)如下:

/*
FM :除空格
9999999.0099:允許小數(shù)點(diǎn)左邊最大正數(shù)為7位,小數(shù)點(diǎn)右邊最少2位,最多4位,且在第5位進(jìn)行四舍五入
*/
Select TO_CHAR(123.0233,'FM9999999.0099') FROM DUAL

相關(guān)文章

  • Oracle中Spool命令的使用方法實(shí)例

    Oracle中Spool命令的使用方法實(shí)例

    這篇文章主要給大家介紹了關(guān)于Oracle中Spool命令的使用方法,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Oracle實(shí)現(xiàn)分頁(yè)三種不同的方式

    Oracle實(shí)現(xiàn)分頁(yè)三種不同的方式

    這篇文章主要給大家介紹了關(guān)于Oracle實(shí)現(xiàn)分頁(yè)三種不同的方式,oracle分頁(yè)與MySQL不同,MySQL是用關(guān)鍵字limit進(jìn)行分頁(yè),oracle是根據(jù)行號(hào),需要的朋友可以參考下
    2023-08-08
  • ORACLE查詢表最近更改數(shù)據(jù)的方法

    ORACLE查詢表最近更改數(shù)據(jù)的方法

    修改項(xiàng)目時(shí),涉及到了Oracle中許多表的修改(包括:增加、刪除字段,修改注釋等)。由于開(kāi)始沒(méi)有進(jìn)行記錄,造成在上測(cè)試機(jī)時(shí),忘記了具體修改過(guò)哪些表了
    2012-11-11
  • Oracle中is和as的區(qū)別和使用

    Oracle中is和as的區(qū)別和使用

    在Oracle數(shù)據(jù)庫(kù)中,AS和IS是兩個(gè)常用的關(guān)鍵字,它們分別表示“命名別名”和“判斷是否相同”,AS和IS的主要區(qū)別在于它們的功能,AS是一種授權(quán)服務(wù),它負(fù)責(zé)授予和管理用戶訪問(wèn)數(shù)據(jù)庫(kù)特定對(duì)象和操作的權(quán)限,IS則是一種身份驗(yàn)證服務(wù),它負(fù)責(zé)管理用戶的身份和訪問(wèn)權(quán)限
    2024-01-01
  • 升級(jí)和卸載Oracle數(shù)據(jù)庫(kù)軟件的命令整理

    升級(jí)和卸載Oracle數(shù)據(jù)庫(kù)軟件的命令整理

    這篇文章主要介紹了升級(jí)和卸載Oracle數(shù)據(jù)庫(kù)軟件的命令整理,包括升級(jí)時(shí)可能用到的查看版本號(hào)和備份操作的命令介紹,需要的朋友可以參考下
    2015-12-12
  • oracle中添加刪除主鍵的方法

    oracle中添加刪除主鍵的方法

    這篇文章主要介紹了oracle中添加刪除主鍵的方法,需要的朋友可以參考下
    2017-01-01
  • Oracle服務(wù)端1521端口無(wú)法telnet,服務(wù)名未開(kāi)啟監(jiān)聽(tīng)的解決

    Oracle服務(wù)端1521端口無(wú)法telnet,服務(wù)名未開(kāi)啟監(jiān)聽(tīng)的解決

    這篇文章主要介紹了Oracle服務(wù)端1521端口無(wú)法telnet,服務(wù)名未開(kāi)啟監(jiān)聽(tīng)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • 使用oracle修改表字段長(zhǎng)度的步驟

    使用oracle修改表字段長(zhǎng)度的步驟

    這篇文章主要介紹了如何使用oracle修改表字段長(zhǎng)度,本文僅僅簡(jiǎn)單介紹了如何使用oracle修改表字段長(zhǎng)度,而oracle提供了大量能使我們快速便捷地處理數(shù)據(jù)的函數(shù)和方法,需要的朋友可以參考下
    2023-07-07
  • Oracle數(shù)據(jù)庫(kù)TNS常見(jiàn)錯(cuò)誤的解決方法匯總

    Oracle數(shù)據(jù)庫(kù)TNS常見(jiàn)錯(cuò)誤的解決方法匯總

    這篇文章主要介紹了Oracle數(shù)據(jù)庫(kù)TNS常見(jiàn)錯(cuò)誤的解決方法,需要的朋友可以參考下
    2014-07-07
  • Oracle數(shù)據(jù)庫(kù)表備份導(dǎo)入導(dǎo)出dmp的方式及踩坑記錄

    Oracle數(shù)據(jù)庫(kù)表備份導(dǎo)入導(dǎo)出dmp的方式及踩坑記錄

    dmp是數(shù)據(jù)庫(kù)導(dǎo)出的文件,用以備份數(shù)據(jù)庫(kù)用,一般會(huì)用exp命令來(lái)導(dǎo)出,用imp命令來(lái)導(dǎo)入也就是恢復(fù)數(shù)據(jù)庫(kù),下面這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫(kù)表備份導(dǎo)入導(dǎo)出dmp的方式及踩坑記錄,需要的朋友可以參考下
    2022-07-07

最新評(píng)論

大理市| 汨罗市| 社会| 葵青区| 漳平市| 刚察县| 桂平市| 安宁市| 美姑县| 昌江| 突泉县| 定陶县| 乌兰县| 道真| 绥阳县| 成武县| 承德市| 抚宁县| 改则县| 浙江省| 千阳县| 凤凰县| 历史| 叶城县| 大埔县| 舞阳县| 安达市| 邻水| 南陵县| 建始县| 石狮市| 庆阳市| 资中县| 日喀则市| 颍上县| 翁源县| 平安县| 花莲县| 若尔盖县| 读书| 祁门县|