`

Oracle格式化函数 to_char,to_date,to_number

阅读更多

转自http://www.cnblogs.com/reborter/archive/2008/11/28/1343195.html

1.格式化函数

函数 返回 描述 例子
to_char (timestamp, text) text 把 timestamp 转换成 string to_char (sysdate,'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 (-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')

2.1 用于 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 ' 只是一个全局修改器。

2.2用于日期/时间模板 to_char () 的后缀

后缀 描述 例子
FM 填充模式前缀 FMMonth
TH 大写顺序数后缀 DDTH
th 小写顺序数后缀 DDTH
FX 固定模式全局选项(见下面) FX Month DD Day
SP 拼写模式(还未实现) DDSP

用法须知:

  • 如果没有使用 FX 选项,to_timestampto_date 忽略空白。FX 必须做为模板里的第一个条目声明。
  • 反斜杠("\ ")必须用做双反斜杠("\\ "),例如 '\\HH\\MI\\SS'
  • 双引号('"')之间的字串被忽略并且不被分析。如果你想向输出写双引号,你必须在双引号前面放置一个双反斜杠('\\'),例如 '\\"YYYY Month\\"'
  • to_char 支持不带前导双引号('"')的文本,但是在双引号之间的任何字串会被迅速处理并且还保证不会被当作模板关键字解释(例如:'"Hello Year: "YYYY' )。

 

3.用于 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 ,而是要求 9MI 前面。
  • PLSG ,和 TH 是 Postgres 扩展。
  • 9 表明一个与在 9 字串里面的一样的数字位数。如果没有可用的数字,那么使用一个空白(空格)。
  • TH 不转换小于零的值,也不转换小数TH 是一个 Postgres 扩展。
  • V 方便地把输入值乘以 10^n ,这里 n 是跟在 V 后面的数字。to_char 不支持把 V 与一个小数 点绑在一起使用(例如. "99.9V99" 是不允许的)。

 

4. 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

    Oracle 的 to_char 函数是一个功能强大且灵活的格式化函数,能够将各种数据类型(日期/时间、整数、浮点数、数字)转换成格式化的字符串,并且能够从格式化的字符串转换回原始的数据类型。该函数的第二个参数是用于...

    Oracle to_date() 用法细节.txt

    ### Oracle to_date() 函数详解 #### 一、概述 `to_date()` 是 Oracle 数据库中的一个重要函数,用于将字符串转换为日期格式。在实际应用中,尤其在处理时间戳或者进行日期比较时非常有用。本文将详细介绍 `to_...

    oracle to_char function

    Oracle的`to_char`函数是一个强大的格式化工具,它允许用户将数据库中的日期、数值、时间等数据类型转换为格式化的字符串。这个函数在PL/SQL编程中非常常见,可以帮助开发人员按照特定的样式和格式展示数据,提高...

    oracle to_char函数将number转成string

    `to_char`函数的基本语法是`to_char(number_type, format_mask)`,其中`number_type`是你想要转换的数字或日期,`format_mask`则定义了转换后的字符串格式。在处理数字转换时,`format_mask`中的字符有着特定的含义...

    Oracle to_char函数的使用方法

    除了Oracle,PostgreSQL也提供了一套类似的格式化函数,例如`to_char`、`to_date`、`to_timestamp`和`to_number`。这些函数在PostgreSQL中的使用方式和Oracle类似,但可能在某些细节上有所不同,例如PostgreSQL中的...

    几个常用的Oracle函数及实例运用

    这里将`f_year`和经过格式化的`f_month`字段组合并转换为数字,以便进行大小比较。 ##### 5. TRIM 函数 TRIM 函数用于去除字符串两端的指定字符,默认为空格。 - **语法**: ```sql TRIM([characters] FROM ...

    ORACLE_FUNCTION.rar_oracle

    七、转换和格式化函数 例如,LOWER和UPPER用于将字符串转换为小写或大写,DECODE用于基于条件返回不同的值,而NLSSORT和NLS_UPPER/Lower则考虑了语言环境进行字符串比较。 八、系统信息函数 DBMS_METADATA用于获取...

    Oracle时间日期操作

    Oracle 中可以使用 to_char 函数来格式化日期和时间。例如,可以使用 to_char 函数来将日期和时间格式化为字符串。 例如,使用 to_char 函数可以格式化当前日期和时间为字符串:select to_char(sysdate, 'yyyy-mm-...

    Oracle Date常用方法封装

    Oracle Date常用方法封装通常涉及对日期的计算、格式化以及与时间戳的转换等操作。在Oracle环境中,我们可以通过PL/SQL来实现这些功能,将常用的方法封装到一个PackageBody中,以便在项目中方便地复用。下面我们将...

    Oracle获取系统时间及格式化

    Oracle 获取系统时间及格式化 Oracle 中获取系统时间可以使用 SYSDATE() 函数,该函数可以返回当前日期和时间。SYSDATE() 函数可以与 TO_CHAR() 函数结合使用,以将日期和时间格式化为字符串。 TO_CHAR() 函数可以...

    Oracle时间格式.docx

    2. **日期格式化**:Oracle 使用 `to_char` 函数将日期转换为字符串,允许我们指定输出格式。如 `to_char(sysdate,'YYYYMMDD W HH24:MI:SS')` 返回格式化的日期,包括年、月、日、星期、小时、分钟和秒。 3. **星期...

    SQL\日期、數字格式化函数大全

    本篇文章将深入探讨SQL中的日期和数字格式化函数,帮助你更好地理解和运用这些功能强大的工具。 首先,我们来了解一下日期处理函数。在SQL中,有多种方法可以转换和格式化日期。例如: 1. `DATE_FORMAT()`(MySQL...

    oracle 日期函数

    ### TO_DATE 和 TO_CHAR 函数 #### TO_DATE 函数 `TO_DATE` 是一个非常重要的函数,用于将字符串转换为日期格式。其语法结构如下: ``` TO_DATE (string, format) ``` 其中 `string` 是需要被转换成日期格式的字符...

    oracle存储过程_函数_语法_大全_详解

    DBMS_OUTPUT.PUT_LINE('The input date is: ' || TO_CHAR(workDate, 'YYYY-MM-DD')); END test; ``` 此示例展示了如何创建一个接受日期作为输入参数,并打印出日期格式化的存储过程。 #### 三、变量赋值 在存储...

    oracle函数分类.rar

    **转换函数**包括`TO_NUMBER`、`TO_CHAR`和`TO_DATE`,它们允许我们根据需要在不同数据类型之间进行转换。例如,`TO_NUMBER`将字符串转换为数字,`TO_DATE`将字符串转换为日期格式,而`TO_CHAR`则将日期或数字转换为...

    oracle时间函数

    ### Oracle时间函数详解 ...在实际应用中,还可以根据需要调整格式化字符串或结合其他函数来满足更复杂的日期操作需求。理解并掌握这些基本的时间函数对于Oracle数据库的高效管理和使用至关重要。

    Oracle获取系统日期日期转换函数.docx

    本文将详细介绍Oracle中的日期函数,包括SYSDATE、TO_CHAR、TO_DATE和TO_NUMBER等,并阐述它们的使用方法和格式化规则。 首先,Oracle提供了一个内置函数SYSDATE,用于获取系统当前的日期和时间。其返回值是一个...

    oracle一些常用函数笔记和简单例子

    Oracle 数据库提供了丰富的内置函数,这些函数能够帮助用户高效地处理数据、格式化输出等。本文将基于提供的部分内容介绍一些常用的 Oracle 函数及其应用示例。 #### 日期时间转换函数 1. **`TO_CHAR()`**:用于将...

Global site tag (gtag.js) - Google Analytics