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

表 5-6. 格式化函数

函数

返回

描述

例子

to_char(datetime, text)

text

把datetime 转换成 string

to_char('now'::datetime, 'hh12:mi:ss')

to_char(timestamp, text)

text

把 timestamp 转换成 string

to_char( 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(-125.8, '999d99s')

to_datetime(text, text)

datetime

把 string 转换成 datetime

to_datetime('05 dec 2000 13', 'dd mon yyyy hh')

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')

所有格式化函数都是 format-picture (格式图)的第二个参数。

表 5-7. 用于日期/时间 to_char() 版本的format-pictures。

format-picture

描述

hh

一天中的小时 (01-12)

hh12

一天中的小时 (01-12)

mi

分钟 (00-59)

ss

秒 (00-59)

ssss

过了午夜的秒 (0-86399)

y,yyy

带逗号的年 (4 或更多位)

yyyy

年 (4 或更多位)

yyy

年的最后三位

yy

年的最后两位

y

年的最后一位

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

世纪(两位)

j

julian 日子(从4712 bc 年一月一日以来的日子)

q

季度

rm

罗马数字的月份 (i-xii; i=jan)

所有 format-pictures (格式图)允许使用后缀(后缀/前缀)。对于近似 format-picture(格式图),后缀总是有效的。'fx'只是全局前缀。

表 5-8. 用于日期/时间 to_char() 版本的 format-pictures (格式图)后缀。

后缀

描述

例子

fm

填充模式-前缀

fmmonth

th

大写顺序数-前缀

ddth

th

小写顺序数-后缀

ddth

fx

fx - (固定模式)全局 format-picture (格式图)开关。如果没有使用这个选项 to_datetime / to_date 忽略空白。必须作为formt-picture(格式图)里的第一个项目使用。

fx month dd day

sp

拼写模式(目前未实现)

ddsp

'/' - 必须用做双 //,例如 '//hh//mi//ss'

'"' - 双引号之间的字串被忽略并且不被分析。如果你想向输出写 '"' 你必须用 //",例如 '//"yyyy month//"'。

text - postgresql 的 to_char() 支持不带 '"' 的文本,但是带有双引号的字串会快些并且可以保证该文本不会被解释成关键字(format-picture,格式图),例如 '"hello year: "yyyy'。

表 5-9. 用于数字 (int/float/numeric) to_char() 版本的format-pictures (格式图)。

格式图

描述

9

返回指定位数的值,如果不够位数用空白代替

0

象 9 一样,但是把空白替换成零

. (句点)

小数点

, (逗号)

分组(千进)分隔符

pr

在尖括号内返回负数

s

用负号返回负数(使用本地)

l

货币符号(使用本地)

d

小数点(使用本地)

g

分组符(使用本地)

mi

在指定位置返回负号(如果数字 < 0)

pl

在指定位置返回正号(如果数字 > 0) postgresql 扩展

sg

在指定位置返回正/负号(如果数字 < 0) - postgresql 扩展

rn

返回数字的罗马数字(数字必须介于1 和 3999之间)

th 或th

把数字转换成自然数(如果是负数或小数不转换) - postgresql 扩展

v

arg1 * (10 ^ n);- 返回一个乘以 10^n (这里 'n' 是'v'后面的数字 '9')。to_char() 不支持同时使用 'v' 和小数点,如 "99.9v99"。

eeee

科学记数,目前不支持。

注意:通过a sign formatted via 'sg','pl' 或 'mi' 格式化的符号数不一定是数字;to_char(-12, 's9999')生成:

' -12'

,但是 to_char(-12, 'mi9999')生成:

'- 12'

。oracle 不允许在 '9' 前面使用 'mi',在 oracle 里,它总是在 '9' 后面。.

表 5-10. 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 指定格式化,Oracle中的格式化函数相关推荐

  1. oracle 指定关联,Oracle巧取指定记录以及巧用外关联查询

    51Testing软件测试网n*ue;R,F%SF5j]"f%Q Oracle巧取指定记录以及巧用外关联查询)L,mOf&ym2g0 9xJ}]-y0作者:010032  51Tes ...

  2. 开发日记——th:field=“*{}“中日期格式化问题

    th:field:"*{}"中日期格式化问题 情景 我在写表单修改时需要通过th:field获取库中的数据,有一个字段是date日期类型,由于插入时没做日期规范,导致读取的日期数据 ...

  3. Oracle处理小数点后位数、格式化数字、查找指定字符所在位置的几个函数

    转载自:http://www.cnblogs.com/toowang/p/3781480.html 1.处理小数点位数的几个oracle函数(): 1.取四舍五入的几位小数 select round( ...

  4. oracle中如何格式化输出,【学习笔记】数据库日期时间格式化输出案例

    天萃荷净 分享一篇关于开发DBA在工作中常用到的日期时间格式化输出方法案例,含:mysql.sql server.oracle 3种数据库日期时间格式化输出 1.mysql数据库时间格式化输出 DAT ...

  5. oracle2周后日期,ORACLE日期时间及数字的格式化参数大全

    SSSSS 返回自午夜到指定时间共逝去的秒数(范围:0-86399) 例如: SQL> select to_char(sysdate,¨sssss¨) from dual; TO_CHAR(SY ...

  6. oracle将字符串的日期格式化,oracle格式化字符串 oracle 怎么把字符串转换成日期...

    Oracle数据库中如何将字符串格式化为日期 可以用 to_date('日期类型字符串','要转化的日期类型')函数进行日期格式转换 sql:select to_date('1990-12-12 12 ...

  7. Oracle中的单行函数

    字符串函数: 注意SUBSTR 如果向要从后向前截取,可以使用负数来表示 例如:SUBSTR('helloword',-3),表示截取最后三个字符,不写长度.默认从开始截取到字符串的末尾. 以上函数除 ...

  8. oracle中转换函数,Oracle中的转换函数

    Oracle中的转换函数有三个,分别为to_char(),to_date(),to_number() 1.to_char()的用法 格式化当前的日期时间 select sysdate,to_char( ...

  9. oracle substr(table),oracle中的substr()函数

    SUBSTR(cExpression,nStartPosition [,nCharactersReturned]) 其中,cExpression指定要从其中返回字符串的字符表达式或备注字段: nSta ...

  10. oracle取第一位,Oracle中的substr()函数和INSTR()函数

    1)substr函数格式   (俗称:字符截取函数) 格式1: substr(string string,int a,int b); 格式2:substr(string string,int a) ; ...

最新文章

  1. 31. 如何计算对象已死(引用计数器算法、可达性分析算法)32.对象是否可 GC?33. Minor GC 和 Full GC
  2. 3Linux内存映射,mmap()函数
  3. 什么是 SAP Business Function
  4. 使用dup2实现重定向到屏幕终端遇到问题
  5. mybatis generator生成example_[Springboot系列] SpringBoot与Mybatis结合
  6. Docker学习总结(20)——Docker 容器实践精华问答集锦
  7. 关于SOA您该知道却不愿知道的十件事
  8. 令人厌恶的错误MSB3721,以及win10,VS2019,YOLO V4 环境搭建
  9. 排序算法之 Slow Sort
  10. easyrecovery免费数据恢复工具操作简单一键恢复数据
  11. DVR,DVS,NVR,NVS 的区别
  12. 基于java的oa协同办公系统_基于java的OA系统设计 毕业论文.doc
  13. 00 SQL课程简介
  14. [转载] 古稀之年被判无期,84 岁再成亿万富翁,一代商业传奇落幕!
  15. Spring中两种编程式事务管理
  16. Python中的列表遍历
  17. centos之dd命令
  18. Qt编写可视化大屏电子看板系统14-标准曲线图
  19. 2015520吴思其 基于《Arm试验箱的国密算法应用》课程设计个人报告
  20. CS61B | Lecture10记录

热门文章

  1. 产品经理经验谈100篇(三)-如何才能打造出一款好的SaaS产品?
  2. 如何恢复被删短信_手机便签记事本的内容如何恢复?快试试这款好用的便签
  3. CSS系列讲解-总目录
  4. kali利用msf工具对ms08-067漏洞入侵靶机(win xp2)
  5. 学生机房管理服务器系统设计,广东工业大学数据库课程设计机房管理系统设计...
  6. 【解决】ERROR in xxx.js from UglifyJs
  7. meta标签的常见用法
  8. Android 创建,验证和删除桌面快捷方式 (删除快捷方式测试可用)
  9. 为别人软件加入广告或者密码(特别思路)
  10. EasyRMS录播管理服务器项目实战:windows上开机自启动NodeJS服务