1. 程式人生 > >Oracle to_char格式化函式

Oracle to_char格式化函式

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 前面。
  • PLSG,和 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格式化函式

Postgres 格式化函式提供一套有效的工具用於把各種資料型別(日期/時間,int,float,numeric)轉換成格式化的字串以及反過來從格式化的字串轉換成原始的資料型別。 注意:所有格式化函式的第二個引數是用於轉換的模板。 表 5-7. 格式化函式 函式 返回

oracle to_char 格式化數值

oracle to_char 格式化數值 FM9999990.009:允許小數點左邊最大正數為7位,最少1位0,小數點右邊最少2位,最多3位,且在第4位進行四捨五入。 select 0.1234 as a0, to_char(0.1234) as a1,

oracle to_char()to_date()函式 mysql日期和字元相互轉換方法

mysql 類似to_char() to_date()函式  mysql日期和字元相互轉換方法  date_format(date,'%Y-%m-%d') -------------->oracle中的to_char();  str_to_date(date,'%Y-%

Oracle to_char函式的使用

Oracle 版本 Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Prod 使用場景 在oracle中儲存的日期型別為Date. 精確到秒鐘. 當儲存的時間只精確到天時, 用String型別的java欄位接收該值,會導致秒分時全部

oracle to_char函式學習

在實際的工作中會經常會用到to_char()、to_date()函式來對時間、日期進行處理。 1、to_char()函式的用法 1.1、將時間日期按照指定的格式輸出,得到的是字串,而非date型別。 select sysdate,to_char(sysdate,'yyyy-mm-

Oracle中關於to_date(),to_char(),to_number()函式的用法

一、Oracle中的to_date()函式 1、to_date()與24小時製表示法及mm分鐘的顯示: 在使用Oracle的to_date函式來做日期轉換時,很多Java程式設計師也許會直接的採用“yyyy-MM-dd HH:mm:ss”的格式作為格式進行轉

Oracle日期格式化以及extract函數的使用

time select info 語法 英語 har image 日期格式 style   由於業務需要,這兩天在學習Oracle,發現Oracle裏面的日期它會給你轉成一種很不習慣的格式,於是想著怎麽樣把它弄成年、月、日的格式來顯示,查資料、看文檔,最終找到解決辦法了,其

如何協助 MySQL 實現 Oracle 高階分析函式

Oracle 支援一些獨特的語法和函式,在移植到 MySQL 上時或多或少給程式設計師造成了困擾,下面我們針對 Oracle 的一些特殊用法舉例並講解如何用集算器來完成同樣功能。這些方法當然也不限於針對 MySQL,對於所有其它資料庫也能支援。   1、   &

除錯經驗——如何檢視Oracle自定義函式 (How to view definition of user defined functions in Oracle

問題描述: 現有的Query中似乎使用了一個自定義函式String_to_list,為了排查問題,需要檢視這個函式的定義。 方法:   --新建的function,並未儲存在All_ojbects表中,而是儲存在user_objects表中 SELECT * FRO

Oracle中add_months()函式的用法

查詢當前時間1個月以前的時間: select add_months(sysdate,-1) from dual; 查詢當前時間1個月以後的時間:   select add_months(sysdate,1) from dual;   如對公司員工表:查詢2年前進入公司的員工的姓

oracle wm concat函式 用於列轉行 逗號分隔

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Oracle的日期函式的使用整理

加法   select sysdate,add_months(sysdate,12) from dual; –加1年   select sysdate,add_months(sysdate,1) from dual; –加1月   select sysdate,to_char

Oracle 的開窗函式 rank,dense_rank,row_number

1、開窗函式和分組函式的區別 分組函式是指按照某列或者某些列分組後進行某種計算,比如計數,求和等聚合函式進行計算。 開窗函式是指基於某列或某些列讓資料有序,資料行數和原始資料數相同,依然能曾現個體資料的原貌。 事例資料 create table student_scores( stu_id varch

oracle 之分析函式 over (partition by ...order by ...)

一:分析函式overOracle從8.1.6開始提供分析函式,分析函式用於計算基於組的某種聚合值,它和聚合函式的不同之處是對於每個組返回多行,而聚合函式對於每個組只返回一行。 1、分析函式和聚合函式的不同之處: 分析函式和聚合函式很多是同名的,意思也一樣,只是聚合函式用group by分組,每個分組返回一

java實現oracle的months_between函式

最近在使用H2記憶體資料庫,在將oracle中的SQL轉換為H2中的SQL時,有些函式H2不存在,幸好H2支援自定義函式 ,於是自己使用日曆寫了下面這個仿oracle的months-between函式:   public static double monthsBetween(

Oracle 之 常用函式

substr: 格式1: substr(string string, int a, int b);   格式2:substr(string string, int a) ; 解釋:     格式1:      

Oracle 之 建立函式

--建立函式語法 create [or replace] function [schema.]function_name (函式引數列表) --引數有IN、OUT、IN OUT三種類型;IN代表需要輸入的引數,OUT代表要返回的引數,IN OUT代表即是輸入引數也是返回引數。 return date

js日期時間格式化函式

// author: meizz // 對Date的擴充套件,將 Date 轉化為指定格式的String // 月(M)、日(d)、小時(h)、分(m)、秒(s)、季度(q) 可以用 1-2 個佔位符, // 年(y)可以用 1-4 個佔位符,毫秒(S)只能用 1 個佔位符(是 1-3

Oracle的decode()函式

最近在做系統遷移,其中有一項是將SQL語句轉換成程式碼實現。於是遇到的下面的SQL語句 decode(a.character_id, ‘308425’, nvl(a.character_value,a.old_character_value), ‘’ ) DECODE() 是流程控制

Vue.js貨幣格式化函式

函式: const digitsRE = /(\d{3})(?=\d)/g export function currency (value, currency, decimals) { value = parseFloat(value) if (!isFinite(value) ||