`
log_cd
  • 浏览: 1089218 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Oracle格式化函数

阅读更多

格式化函数

 

 

函数 返回类型 描述 例子
to_char(timestamp, text) text 把时间戳转换成字串 to_char(current_timestamp, 'HH12:MI:SS')
to_char(interval, text) text 把时间间隔转为字串 to_char(interval '15h 2m 12s', 'HH24:MI:SS')
to_char(int, text) text 把整数转换成字串 to_char(125, '999')
to_char(double precision, text) text 把实数/双精度数转换成字串 to_char(125.8, '999D9')
to_char(numeric, text) text 把 numeric 转换成字串 to_char(numeric '-125.8', '999D99S')
to_date(text, text) date 把字串转换成日期 to_date('05 Dec 2000', 'DD Mon YYYY')
to_timestamp(text, text) date 把字串转换成时间戳 to_timestamp('05 Dec 2000', 'DD Mon YYYY')
to_number(text, text) numeric 把字串转换成 numeric to_number('12,454.8-', '99G999D9S')

 

用于日期/时间格式化的模板

 

模板 描述
HH 一天的小时数 (01-12)
HH12 一天的小时数 (01-12)
HH24 一天的小时数 (00-23)
MI 分钟 (00-59)
SS 秒 (00-59)
MS 毫秒 (000-999)
US 微秒 (000000-999999)
SSSS 午夜后的秒 (0-86399)
AMA.M.PMP.M. 正午标识(大写)
ama.m.pmp.m. 正午标识(小写)
Y,YYY 带逗号的年(4 和更多位)
YYYY 年(4和更多位)
YYY 年的后三位
YY 年的后两位
Y 年的最后一位
BCB.C.ADA.D. 纪元标识(大写)
bcb.c.ada.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;周日=1)
W 一个月里的周数(1-5)(第一周从该月第一天开始)
WW 一年里的周数(1-53)(第一周从该年的第一天开始)
IW ISO 一年里的周数(第一个星期四在第一周里)
CC 世纪(2 位)
J 儒略日(自公元前4712年1月1日来的天数)
Q 季度
RM 罗马数字的月份(I-XII;I=JAN)(大写)
rm 罗马数字的月份(I-XII;I=JAN)(小写)
TZ 时区字串 (大写)
tz 时区字串 (小写)

 

日期/时间格式化的模板模式修饰词

 

修饰词 描述 例子
FM 前缀 填充模式(抑制填充空白和零) FMMonth
TH 后缀 大写顺序数后缀 DDTH
th 后缀 小写顺序数后缀 DDth
FX 前缀 固定格式全局选项(见用法须知) >FX Month DD Day
SP suffix 拼写模式(还未实现) DDSP

 

  • FM 抑制前导的零或尾随的空白, 如果没有使用它的话,会在输出中增加这些填充最终把输出变成固定宽度的模式。

  • 如果没有使用 FX 选项, to_timestampto_date 在转换字串的时候忽略多个空白。 FX 必须做为模板里的第一个项声明。 比如 to_timestamp('2000 JUN', 'YYYY MON') 是正确的, to_timestamp('2000 JUN', 'FXYYYY MON') 会返回一个错误,因为to_timestamp 只预料会有一个空白。

  • to_char 模板 里可以有普通文本,并且它们会被照字输出。 你可以把一个字串放到双引号里强迫它解释成一个文本, 即使它里面包含模式关键字也如此。比如,在 '"Hello Year "YYYY'YYYY 将被年份数据代替,但是Year里单独 的 Y 不会。

  • 如果你想在输出里有双引号,那么你必须在它们 前面放双反斜杠,比如 '\\"YYYY Month\\"'. (需要两个反斜杠是因为反斜杠在字串常量里已经有特殊含义了。)

  • 如果你使用的年份长于 4 位字符,那么用 YYYY 从字串向timestamp或者date 做转换时要受到限制。 你必须在 YYYY 后面使用一些非数字字符或者模板, 否则年份总是解释为 4 位数字。比如(对于 2000 年): to_date('20001121', 'YYYYMMDD') 将会被解释成一个 4 位数字的年份, 最好在年后面使用一个非数字的分隔符,象 to_date('2000-1121', 'YYYY-MMDD')to_date('2000Nov31', 'YYYYMonDD')

  • 将字串转化为timestamp时, 毫秒(MS)和微秒(US)都是用字串 的小数点后面的部分转换的。比如 to_timestamp('12:3', 'SS:MS') 不是 3 毫秒, 而是 300,因为转换把它看做 12 + 0.3 秒。 这意味着对于格式 'SS:MS'而言,输入值为 12:312:3012:300 声明了相同数目的 毫秒。对于三毫秒,你必须使用 12:003,那么转换会把它看做 12 + 0.003 = 12.003 秒。

    用于数值格式化的模板模式

    模板 描述
    9 带有指定数值位数的值
    0 带前导零的值
    . (句点) 小数点
    , (逗号) 分组(千)分隔符
    PR 尖括号内负值
    S 带符号的数值(使用区域设置)
    L 货币符号(使用区域设置)
    D 小数点(使用区域设置)
    G 分组分隔符(使用区域设置)
    MI 在指明的位置的负号(如果数字 <>
    PL 在指明的位置的正号(如果数字 > 0)
    SG 在指明的位置的正/负号
    RN 罗马数字(输入在 1 和 3999 之间)
    THth 序数后缀
    V 移动指定位(小数)(参阅注解)
    EEEE 科学记数。(现在还未实现)

    to_char 例子

    表达式 结果
    to_char(current_timestamp, 'Day, DD HH12:MI:SS') 'Tuesday , 06 05:39:18'
    to_char(current_timestamp, 'FMDay, FMDD HH12:MI:SS') 'Tuesday, 6 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, 'FM999.999') '148.5'
    to_char(148.5, 'FM999.990') '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, 'FM999MI') '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:"999" Post:" .999') 'Pre: 485 Post: .800'
    to_char(12, '99V999') ' 12000'
    to_char(12.4, '99V999') ' 12400'
    to_char(12.45, '99V9') ' 125'

    例如:

    想把一个带小数点的Number型转换成String型的话:

    select TO_CHAR(100000.0, 'FM999,999,999,990.90') from dual;

    结果是:100,000.00

  •  

    说明:FM前缀的作用是去除首尾的空字符或0,如果select TO_CHAR(100000.0, 'FM999,999,999,999.99') from dual;

    结果是:100,000.

     

    日期格式化:

    SELECT TO_CHAR(sysdate,'YYYY"年"MM"月"DD"日"') FROM dual;

     

     

    附:oracle补零

    1.前端补0:

    select lpad('345',8,'0') from dual;
    select to_char('345','00000000') from dual;
    

    2.后端补0:

    select rpad('345',8,'0') from dual;

    3.Oracle中取毫秒级时间:(获取的时间是精确到毫秒以后三位的)

    select To_Char(current_timestamp,'yyyymmddhh24missff') from dual
     
    分享到:
    评论

    相关推荐

      Oracle数据库常用函数.sql

      系统信息函数、类型转化函数、格式化函数、控制流函数、加密函数、日期和时间函数、字符串函数、聚合函数(常用于group by从句的select查询中)、数学函数

      oracle中日期类型与unix 时间戳的转换

      Oracle中的时间是Date型,以下函数提供了两种时间转换的Oracle函数 --unix时间戳与date时间互转 SELECT oracle_to_unix(SYSDATE),unix_to_oracle(1551774286),oracle_to_unix(SYSDATE) FROM dual;

      MYSQL,SQLSERVER,ORACLE常用的函数

      SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数; SQL&gt; select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual; A A ZERO SPACE --------- --------- --------- --------- ...

      oracle函数大全.doc

      ORACLE函数大全 ________________________________________ 作者:[本站编辑] 来源:[CSDN] 浏览:[ ] SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数; SQL&gt; select ascii('A') A,ascii('a') a,...

      Oracle to_char函数的使用方法

      Postgres 格式化函数提供一套有效的工具用于把各种数据类型(日期/时间,int,float,numeric)转换成格式化的字符串以及反过来从格式化的字符串转换成原始的数据类型。 注意:所有格式化函数的第二个参数是用于...

      ORACLE四舍五入函数

      经常为四舍五入的方法烦恼,新的思路重写四舍五入,并可以根据小数位数自动格式化,适合于数值型表格显示,该思路可适用于任何系统或数据库,代码比较乱,欢迎指正。

      Oracle SQL内置函数说明(非常详细)

      , 999,999 标定格式化数字中的位置 G 999G999 返回一组通过参数NLS_NUMERIC_CHARACTER设定的分隔符,这是个对语言编程有限定作用的数值 . 9.99 标定格式化数字中的小数点位置 D 9D99 标定小数点(由参数NLS_...

      oracle的函数大全

      oracle的函数大全

      Oracle常用函数

      Oracle 常用函数 包括:日期转换、字符格式化、数字比较、ASC 转换、数字格式化等等。

      SqlServer,Oracle,MySql数据库结构相互对比同步, 代码生成,Word表格生成Model,文本对比,格式化文本

      两个版本的数据库对比,同时支持sqlserver,oracle,MySql ,代码差异高亮...Json XML,SQL 文本格式化 文本差异对比 根据 Word表格生成Model. 比如做接口:人家给你一个word文件,你需要 建模 就方便很多 介绍博客有图片

      ORACLE数据库智能化管理系统2012

      ORACLE数据库智能化管理系统2012 软件介绍 序言 ORACLE数据库管理们: 你们还在为处理日常大量数据,天天写过多的SQL语句而烦恼吗? 还在为由于没有面面具到的软件来汇制想要的日常数据报表而烦恼吗? 还在为查找...

      21天学通Oracle

      3.2.2 SQL Plus输出结果的格式化 41 3.2.3 SQL Plus小结 46 3.3 PL/SQL 46 3.3.1 PL/SQL常用开发工具 46 3.3.2 开发一个简单的PL/SQL程序 48 3.4 本章实例 49 3.5 本章小结 50 3.6 习题 50 第二篇 Oracle...

      Oracle 数据类型

      5、DATE数据类型,使用7个字节固定长度,每个字节分别存储世纪,年,月,日 ,时,分,秒,ORACLE中SYSDATE函数的功能是返回当前的日期和时间 6、TIMESTAMP数据类型,和DATE相似,但是这个类型的秒精确到小数点后6...

      Oracle11g从入门到精通2

      5.5 使用SQL*Plus格式化查询结果 5.5.1 格式化列 5.5.2 定义页与报告的标题和维数 5.5.3 存储和打印结果 第6章 Oracle的基本操作 6.1 Oracle的启动与关闭 6.1.1 启动Oracle数据库 6.1.2 关闭Oracle...

      sql格式化工具集合

      第三款是针对MySQL的,是作者从phpMyAdmin中抠出来的,php-SQL-Format ,这个在我本地出了点小问题,复杂SQL格式化不了,我和作者沟通,他说有可能是SQLParser的问题,没有深究,我又观察了下,我觉得是过程中传递...

      oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

      说明:Oracle中需要创建用户一定是要具有dba(数据库管理员)权限的用户才能创建,而且创建的新用户不具备任何权限,连登录都不可以。 用法:create user 新用户名 identified by 密码 例子: 2. 修改密码 说明:...

      Oracle Database 11g初学者指南--详细书签版

      4.7 日期函数(格式化的和按时间排列的) 93 4.7.1 日期函数 93 4.7.2 特殊格式的日期数据类型 94 4.7.3 嵌套函数 94 4.8 连接(ANSI与Oracle对比):内连接、外连接、自连接 95 4.8.1 内连接 95 4.8.2 外连接 98...

      Oracle_Database_11g完全参考手册.part3/3

      第52章 Oracle中的XML指南 第Ⅷ部分 附录 附录A 命令和术语参考 作者介绍 Kevin Loney是Oracle数据库设计、开发、管理和调整方面的国际知名专家。作为金融界的一名企业数据库架构师,2002年他被Oracle Magazine...

      Oracle11g从入门到精通

      5.5 使用SQL*Plus格式化查询结果 5.5.1 格式化列 5.5.2 定义页与报告的标题和维数 5.5.3 存储和打印结果 第6章 Oracle的基本操作 6.1 Oracle的启动与关闭 6.1.1 启动Oracle数据库 6.1.2 关闭Oracle数据库 ...

      Oracle_Database_11g完全参考手册.part2/3

      第52章 Oracle中的XML指南 第Ⅷ部分 附录 附录A 命令和术语参考 作者介绍 Kevin Loney是Oracle数据库设计、开发、管理和调整方面的国际知名专家。作为金融界的一名企业数据库架构师,2002年他被Oracle Magazine...

    Global site tag (gtag.js) - Google Analytics