Oracle SQL日期时间及数字的格式化参数大全


[三思笔记 ]-日期时间及数字的格式化参数大全 http://www.5ienet.com/ QQ:5454589 君三思 [[[ [ 三思 笔 记 ]]] ] 日期 时 间 及数 字 的格 式 化参 数 大 全 2007.12.132007.12.132007.12.13 2007.12.13 经常遇到有朋友问询关于日期时间格式化的问题(或可以通过格式化轻易解决),经过参考Oracle SQL Reference 官方 文档 , 并 附 上详 细的 应用 示例 综合 成文 , 希 望 能够 对大 家学 习和 使用 有所 帮助 。 本 篇 可视 为 "oracle 著名 及非 著名 函数 介绍 "的补 充! 环境 : SQL> select *from v$version; BANNER ---------------------------------------------------------------- Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Prod PL/SQL Release 10.2.0.3.0 - Production CORE 10.2.0.3.0 Production TNS for 32-bit Windows: Version 10.2.0.3.0 - Production NLSRTL Version 10.2.0.3.0 - Production SQL> SELECTSESSIONTIMEZONEFROMDUAL; SESSIONTIMEZONE --------------------------------------------------------------------------- +08:00 SQL> show parameter nls; NAMETYPEVALUE ----------------------------------------------------------------------------- nls_date_format string yyyy-mm-dd hh24:mi:ss nls_language string SIMPLIFIEDCHINESE 一、日 期及时间 格式 串 说明 及示 例 --------------------------------------------------------------------- -/,.;: 指定 返回 字串 分隔 符 例如 : SQL> select to_char(sysdate,'yyyy/mm/dd') from dual; TO_CHAR(SYSDATE,'YYYY/MM/DD') ----------------------------- [三思笔记 ]-日期时间及数字的格式化参数大全 http://www.5ienet.com/ QQ:5454589 君三思 2007/12/14 SQL> select to_char(sysdate,'yyyy-mm-dd') from dual; TO_CHAR(SYSDATE,'YYYY-MM-DD') ----------------------------- 2007-12-14 AD/A.D. 公元 标识 例如 : SQL> select to_char(sysdate,'AD YYYY-MM-DD') from dual; TO_CHAR(SYSDATE,'ADYYYY-MM-DD' ------------------------------ 公元 2007-12-14 BC/B.C. 公元 标识 例如 SQL> select to_char(sysdate,'BC YYYY-MM-DD') from dual; TO_CHAR(SYSDATE,'BCYYYY-MM-DD' ------------------------------ 公元 2007-12-14 AM/A.M. 子午 线标 识 例如 : SQL> select to_char(sysdate,'YYYY-MM-DD AM hh24:mi:ss') from dual; TO_CHAR(SYSDATE,'YYYY-MM-DDAMH ------------------------------ 2007-12-14 下午 13:41:58 PM/P.M. 子午 线标 识 例如 : SQL> select to_char(sysdate,'YYYY-MM-DD PM hh24:mi:ss') from dual; TO_CHAR(SYSDATE,'YYYY-MM-DDPMH ------------------------------ 2007-12-14 下午 13:42:23 CC/SCC 世纪 标识 , S前缀 指定 如遇 公元 前的 显示 ,会 在显 示前 加 (-) 提示 :  如果 年份 中最 后两 位数 字在 01 到99(含)之间 ,则 返回 值等 于年 份前 两位 +1  如果 年份 中最 后两 位数 字是 00,则 返回 值与 年份 前两 位相 同 例如 : [三思笔记 ]-日期时间及数字的格式化参数大全 http://www.5ienet.com/ QQ:5454589 君三思 SQL> select to_char(to_date('2000-8-3','YYYY-MM-DD'),'cc') from dual; TO_CHAR(TO_DATE('2000-8-3','YY ------------------------------ 20 SQL> select to_char(to_date('2001-8-3','YYYY-MM-DD'),'cc') from dual; TO_CHAR(TO_DATE('2001-8-3','YY ------------------------------ 21 D 指定 日期 在周 中的 数值 (范围 : 1-7) 例如 : SQL> select to_char(to_date('2007-12-14','yyyy-mm-dd'),'D') from dual; TO_CHAR(TO_DATE('2007-12-14',' ------------------------------ 6 DD 指定 日期 在当 月中 的天 数 (范围 : 1-31) 例如 : SQL> select to_char(to_date('2007-12-14','yyyy-mm-dd'),'DD') from dual; TO_CHAR(TO_DATE('2007-12-14',' ------------------------------ 14 DDD 指定 日期 在当 年中 的天 数 (范围 : 1-366) 例如 : SQL> select to_char(to_date('2007-12-14','yyyy-mm-dd'),'DDD') from dual; TO_CHAR(TO_DATE('2007-12-14',' ------------------------------ 348 DAY 指定 日期 在周 中的 名称 例如 : SQL> select to_char(to_date('2007-12-14','yyyy-mm-dd'),'Day') from dual; TO_CHAR(TO_DATE('2007-12-14',' ------------------------------ 星期 五 [三思笔记 ]-日期时间及数字的格式化参数大全 http://www.5ienet.com/ QQ:5454589 君三思 MON 返回 指定 日期 的月 份简 写 例如 : SQL> select to_char(sysdate,'MON') from dual; TO_CHAR(SYSDATE,'MON') ---------------------- 12 月 与DY同, 中文 看不 出简 写效 果。 MONTH 返回 指定 日期 的月 份全 称 例如 : SQL> select to_char(sysdate,'MONTH') from dual; TO_CHAR(SYSDATE,'MONTH') ------------------------ 12 月 YEAR/SYEAR 返回 字符 型年 ,此处 s前缀与 SCC 处相 同 例如 : SQL> select to_char(sysdate,'year') from dual; TO_CHAR(SYSDATE,'YEAR') ------------------------------------------ two thousand seven YYYY/SYYYY 返回 数字 型年 ,此处 s前缀与 SCC 处相 同 例如 : SQL> select to_char(sysdate,'yyyy') from dual; TO_CHAR(SYSDATE,'YYYY') ----------------------- 2007 MM 返回 指定 日期 的月 份 (范围 : 1-12) 例如 : SQL> select to_char(sysdate,'MM') from dual; TO_CHAR(SYSDATE,'MM') --------------------- 12 HH 小时 (范围 : 1-12) 例如 : SQL> select to_char(sysdate,'am hh') from dual; [三思笔记]-日期时间及数字的格式化参数大全 http://www.5ienet.com/ QQ:5454589 君三思 TO_CHAR(SYSDATE,'AMHH') ----------------------- 下午 02 HH12 小时(范围:1-12) 例如: SQL> select to_char(sysdate,'am hh12') from dual; TO_CHAR(SYSDATE,'AMHH12') ------------------------- 下午 02 HH24 小时(范围:0-23) 例如: SQL> select to_char(sysdate,'am hh24') from dual; TO_CHAR(SYSDATE,'AMHH24') ------------------------- 下午 14 MI 返回指定时间的分钟(范围 0-59) 例如: SQL> select to_char(sysdate,'MI') from dual; TO_CHAR(SYSDATE,'MI') --------------------- 05 SS 返回指定时间的秒数(范围:0-59) 例如: SQL> select to_char(sysdate,'ss') from dual; TO_CHAR(SYSDATE,'SS') --------------------- 34 FF[1-9] 返回毫秒数,可指定长度 1-9,默认 6位 例如: SQL> select to_char(systimestamp,'ff4') from dual; TO_CHAR(S --------- 6710 [三思笔记 ]-日期时间及数字的格式化参数大全 http://www.5ienet.com/ QQ:5454589 君三思 Y,YYY 返回 有逗 号分 隔显 示的 年 例如 : SQL> select to_char(sysdate,'y,yyy') from dual; TO_CHAR(SYSDATE,'Y,YYY') ------------------------ 2,007 I/IY/IYY/IYYY 返回 ISO 标准 年 例如 : SQL> select to_char(to_date('187-4-3','yyyy-mm-dd'),'IYYY') from dual; TO_CHAR(TO_DATE('187-4-3','YYY ------------------------------ 0187 Y/YY/YYY 以指 定长 度返 回日 期的 年份 例如 : SQL> select to_char(sysdate,'yy') from dual; TO_CHAR(SYSDATE,'YY') --------------------- 07 W 返回 指定 日期 在当 月中 的第 X周(范围 : 1-5) 例如 : SQL> select to_char(to_date('2007-6-18','yyyy-mm-dd'),'w') from dual; TO_CHAR(TO_DATE('2007-6-18','Y ------------------------------ 3 WW 返回 指定 日期 在当 年中 的第 X周(范围 : 1-53) 例如 : SQL> select to_char(to_date('2007-6-18','yyyy-mm-dd'),'ww') from dual; TO_CHAR(TO_DATE('2007-6-18','Y ------------------------------ 25 IW 指定 日期 在当 年中第 X周(范围 : 1-52 或1-53(润年 )) 例如 : SQL> select to_char(sysdate,'IW') from dual; [三思笔记 ]-日期时间及数字的格式化参数大全 http://www.5ienet.com/ QQ:5454589 君三思 TO_CHAR(SYSDATE,'IW') --------------------- 50 RM 以罗 马数 字形 式返 回月 份 (范围 I-XII) 例如 : SQL> select to_char(to_date('2007-11-3','yyyy-mm-dd'),'RM') from dual; TO_CHAR(TO_DATE('2007-11-3','Y ------------------------------ XI Q 返回 指定 日期 的季 度 (范围 : 1-4) 例如 : SQL> select to_char(to_date('2007-2-3','yyyy-mm-dd'),'q') from dual; TO_CHAR(TO_DATE('2007-2-3','YY ------------------------------ 1 J 自公 元前 4712 年1月1日到 指定 日期 的总 天数 例如 : SQL> select to_char(sysdate,'J') from dual; TO_CHAR(SYSDATE,'J') -------------------- 2454449 SSSSS 返回 自午 夜到 指定 时间 共逝 去的 秒数 (范围 : 0-86399) 例如 : SQL> select to_char(sysdate,'sssss') from dual; TO_CHAR(SYSDATE,'SSSSS') ------------------------ 55141 DL 根据数据库 nls_date_format 参数中的设置及 nls_language,nls_territory 参数中的格式返回长日期形 式, 有点 儿绕 ,呵 呵你 试试 就知 道了 例如 : SQL> select to_char(sysdate,'DL') from dual; TO_CHAR(SYSDATE,'DL') ------------------------ [三思笔记 ]-日期时间及数字的格式化参数大全 http://www.5ienet.com/ QQ:5454589 君三思 2007 年12 月14 日星期 五 DS 与上 相同 返回 短日 期形 式 例如 : SQL> select to_char(sysdate,'Ds') from dual; TO_CHAR(SYSDATE,'DS') --------------------- 2007-12-14 TS 与DL,DS参数 类似 ,不过 ts 返回 的是 时间 例如 : SQL> select to_char(sysdate,'ts') from dual; TO_CHAR(SYSDATE,'TS') --------------------- 下午 3:21:20 DY 返回 日期 简写 例如 : SQL> alter session set nls_language='SIMPLIFIED CHINESE'; 会话 已更 改。 SQL> select to_char(sysdate,'dy') from dual; TO_CHAR(SYSD ------------ 星期 五 嗯? 怎么 没变 ?黑 黑中 文没 法简 了嘛 ,这 样试 试 ~~ SQL> alter session set nls_language='AMERICAN'; Session altered. SQL> select to_char(sysdate,'dy') from dual; TO_CHA ------ fri RRRR参数与 YY参数 很类 似, 但取 值规 则略 有不 同: 如果 输入 的两 位数是 00-49: 如果 当前 年份 属于 00-49,则 返回 成本 世纪 所在 年份 ; 如果 当前 年份 属于 50-99,则 返回 成下 世纪 所在 年份 。 [三思笔记 ]-日期时间及数字的格式化参数大全 http://www.5ienet.com/ QQ:5454589 君三思 如果 输入 的两 位数是 50-99: 如果 当前 年份 属于 00-49,则 返回 成上 世纪 所在 年份 如果 当前 年份 属于 50-99,则 返回 成本 世界 所在 年份 注:这种自动转换只适用于 String -> Date 的转换,如果是 Date -> String,那就按照 Date 存储 的值 来转 换, 此时 再用 RR/RRRR 已经 没有 意义 了, 因为 Oracle 内部 存储 的年 份是 四位 数的 。 例如 : SQL> select sysdate from dual; SYSDATE ------------------- 2007-12-18 15:11:39 SQL> select to_date('12','rr') from dual; TO_DATE('12','RR') ------------------- 2012-12-01 00:00:00 SQL> select to_date('51','rr') from dual; TO_DATE('51','RR') ------------------- 1951-12-01 00:00:00 RRRR 输入 值可 以是 2位也 可以是 4位, 2位时 规则与 RR完全 相同 。 例如 : SQL> select to_date('97-11-3','rrrr-mm-dd') from dual; TO_DATE('97-11-3','RRRR-MM-DD' ------------------------------ 1997-11-3 SQL> select to_date('17-11-3','rrrr-mm-dd') from dual; TO_DATE('17-11-3','RRRR-MM-DD' ------------------------------ 2017-11-3 提示 : FM 及FX 用于 to_*函数 中控 制空 白填 充或 精确 检查 , 其 提 供的 是一 个格 式化 方案 , 并 且 具备 相当 的 持久 能力 , 比 如当 你第 一次 调用 之后 即开 始生 效, 后 续 再调 用时 即使 不指定 FM/FX, 也 仍然 会生 效。 当 你再 次 调用 时失 效, 第 三次 调用 时又 开始 生效 , 以 此 类推 (有点 儿绕 , 不 明 白的 看下 面的 示例 , 示 例 还看 不明 白的 直 接 问我 ,问 我也 问不 明白 地话 ..........黑, 估计 你也 用不 着, 算鸟 )。。。。。 FM 填充 模式 。 Oracle 默认 使用 空白 字符 填充 被格 式化 的元 素, 确保 宽度 一致 。例 如: [三思笔记 ]-日期时间及数字的格式化参数大全 http://www.5ienet.com/ QQ:5454589 君三思 例如 : SQL> select to_char(to_date('2007-3-1','yyyy-mm-dd'),'month') mm,length(to_char(to_date('2007-3- 1','yyyy-mm-dd'),'month')) ll from dual; MMLL ------------------- march 9 SQL> select to_char(to_date('2007-12-1','yyyy-mm-dd'),'month') mm,length(to_char(to_date('2007-12- 1','yyyy-mm-dd'),'month')) ll from dual; MMLL ------------------- december 9 如上 例可 以看 到, 不管 几月 份, 其返 回所 占长 度是 一致 的。  如果 是字 符格 式化 ,指定 fm 参数 后将 仅返 回指 定属 性实 际所 占长 度 (不再 以空 格填 充 )。 例如 : SQL> select to_char(to_date('2007-3-1','yyyy-mm-dd'),'fmmonth') mm,length(to_char(to_date('2007-3- 1','yyyy-mm-dd'),'fmmonth')) ll from dual; MMLL --------------- march 5 SQL> select to_char(to_date('2007-12-1','yyyy-mm-dd'),'fmmonth') mm,length(to_char(to_date('2007- 12-1','yyyy-mm-dd'),'fmmonth')) ll from dual; MMLL ------------------ december 8 与上 对比 ,看 出区 别来 了吧 。  如果 是数 值格 式化 , fm 参数 会自 动舍 弃被 格式 化元 素的 前置 0。 例如 : SQL> alteralteralter alter sessionsessionsession session setsetset set nls_date_format='fmyyyy-mm-ddnls_date_format='fmyyyy-mm-ddnls_date_format='fmyyyy-mm-dd nls_date_format='fmyyyy-mm-dd hh24:mi:ss';hh24:mi:ss';hh24:mi:ss'; hh24:mi:ss'; Session altered. SQL> select to_date('2007-8-1 03:03:04','yyyy-mm-dd hh24:mi:ss') from dual; TO_DATE('2007-8-103 [三思笔记 ]-日期时间及数字的格式化参数大全 http://www.5ienet.com/ QQ:5454589 君三思 ------------------- 2007-8-1 3:3:4 SQL> alteralteralter alter sessionsessionsession session setsetset set nls_date_format='yyyy-mm-ddnls_date_format='yyyy-mm-ddnls_date_format='yyyy-mm-dd nls_date_format='yyyy-mm-dd hh24:mi:ss';hh24:mi:ss';hh24:mi:ss'; hh24:mi:ss'; Session altered. SQL> select to_date('2007-8-1 03:03:04','yyyy-mm-dd hh24:mi:ss') from dual; TO_DATE('2007-8-103 ------------------- 2007-08-01 03:03:04 SQL> alteralteralter alter sessionsessionsession session setsetset set nls_date_format='fmyyyy-mm-fmddnls_date_format='fmyyyy-mm-fmddnls_date_format='fmyyyy-mm-fmdd nls_date_format='fmyyyy-mm-fmdd hh24:fmmi:ss';hh24:fmmi:ss';hh24:fmmi:ss'; hh24:fmmi:ss'; Session altered. SQL> select to_date('2007-8-1 03:03:04','yyyy-mm-dd hh24:mi:ss') from dual; TO_DATE('2007-8-103 ------------------- 2007-8-01 03:3:4 FX 精确 匹配 。使用 FX 参数 之后 :  字符 及对 应格 式必 须严 格一 一对 应, 甚至 连分 隔符 也需 要相 符。  不允 许有 多余 空格 。  数值 参与 格式 需要 完全 对应 (或通过 fm 参数 自动 补足 0) 例如 : SQL> selectselectselect select to_date('2007-9-26','yyyy-mm-dd')to_date('2007-9-26','yyyy-mm-dd')to_date('2007-9-26','yyyy-mm-dd') to_date('2007-9-26','yyyy-mm-dd') fromfromfrom from dual;dual;dual; dual; TO_DATE('2007-9-26' ------------------- 2007-09-26 00:00:00 SQL> selectselectselect select to_date('2007-9-26','fxyyyy-mm-dd')to_date('2007-9-26','fxyyyy-mm-dd')to_date('2007-9-26','fxyyyy-mm-dd') to_date('2007-9-26','fxyyyy-mm-dd') fromfromfrom from dual;dual;dual; dual; select to_date('2007-9-26','fxyyyy-mm-dd') from dual * ERROR at line 1: ORA-01862: the numeric value does not match the length of the format item SQL> selectselectselect select to_date('2007-09-26','fxyyyy-mm-dd')to_date('2007-09-26','fxyyyy-mm-dd')to_date('2007-09-26','fxyyyy-mm-dd') to_date('2007-09-26','fxyyyy-mm-dd') fromfromfrom from dual;dual;dual; dual; TO_DATE('2007-09-26 [三思笔记 ]-日期时间及数字的格式化参数大全 http://www.5ienet.com/ QQ:5454589 君三思 ------------------- 2007-09-26 00:00:00 SQL> selectselectselect select to_date('2007-9-26','fxyyyy-fmmm-dd')to_date('2007-9-26','fxyyyy-fmmm-dd')to_date('2007-9-26','fxyyyy-fmmm-dd') to_date('2007-9-26','fxyyyy-fmmm-dd') fromfromfrom from dual;dual;dual; dual; TO_DATE('2007-9-26' ------------------- 2007-09-26 00:00:00 SQL> selectselectselect select to_date('2007-9-26','fxyyyy/fmmm/dd')to_date('2007-9-26','fxyyyy/fmmm/dd')to_date('2007-9-26','fxyyyy/fmmm/dd') to_date('2007-9-26','fxyyyy/fmmm/dd') fromfromfrom from dual;dual;dual; dual; select to_date('2007-9-26','fxyyyy/fmmm/dd') from dual * ERROR at line 1: ORA-01861: literal does not match format string X 本地 的默 认分 隔符 例如 : SQL> select to_char(systimestamp,'hh24:mi:ssxff') from dual; TO_CHAR(SYSTIMESTAMP,'HH24:MI: ------------------------------ 16:21:12.609000 以下 四项 为时 区相 关参 数, 明确 表示 某一 个时 区, 应该 联合 使用 TZHTZM 或者 TZRTZD TZD/TZR 例如 : SQL> select to_char(systimestamp,'tzr:tzd') from dual; TO_CHAR(SYSTIMESTAMP,'TZR:TZD') --------------------------------------- +08:00: TZH/TZM 例如 : SQL> select to_char(systimestamp,'tzh:tzm') from dual; TO_CHA ------ +08:00 应用 示例 : 1、与指 定日 期在 同一 周,周 1的日 期是 : SQL> select to_date('2007-12-6', 'yyyy-mm-dd') [三思笔记 ]-日期时间及数字的格式化参数大全 http://www.5ienet.com/ QQ:5454589 君三思 2 - to_char(to_date('2007-12-6', 'yyyy-mm-dd'), 'd') + 2 3 from dual; TO_DATE('2 ---------- 2007-12-03 SQL> select trunc(to_date('2007-12-6', 'yyyy-mm-dd'), 'd') + 1 rn from dual; TRUNC(TO_DATE('2007-12-6','YYY ------------------------------ 2007-12-3 SQL> select next_day(to_date('2007-12-6', 'yyyy-mm-dd') - 7, '星期 一 ') from dual; NEXT_DAY(TO_DATE('2007-12-6',' ------------------------------ 2007-12-3 2、指定 日期 当月 最后 一个 星期 天: SQL> select max(rn) 2 from (select to_date('2007-12-' || rownum, 'yyyy-mm-dd') rn 3 from dual 4 connect by rownum <= 5 (to_char(to_date('2007-12-31', 'yyyy-mm-dd'), 'dd'))) a 6 where to_char(a.rn, 'd') = 1 7 ; MAX(RN) ----------- 2007-12-30 SQL> select next_day(trunc(to_date('2007-12-31', 'yyyy-mm-dd'), 'month')+31-7,'星期 日 ') from dual; NEXT_DAY(TRUNC(TO_DATE('2007-1 ------------------------------ 2007-12-30 3、今年第 127 天是 几号 : SQL> select to_date('127','ddd') from dual; TO_DATE('1 ---------- 2007-05-07 [三思笔记 ]-日期时间及数字的格式化参数大全 http://www.5ienet.com/ QQ:5454589 君三思 二、数值 格式 串 说明 及示 例 --------------------------------------------------------------------- , 在指 定位 置附 加逗 号 (便于 阅读 ), 注 意 逗号 不能 出现 于格 式字 串首 位, 并 且 对于 小数 点的 数字 无 效 例如 : SQL> select to_char(389999.00,'99,999,999') from dual; TO_CHAR(389 ----------- 389,999 . 按指 定格 式显 示小 数点 及小 数点 后位 置 (指定 数字 没有 小数 的话 ,以 0补足 ) 例如 : SQL> select to_char(18,'999.000') from dual; TO_CHAR( -------- 18.000 $ 字符 前附 加 $符 例如 : SQL> select to_char(18,'$999') from dual; TO_CH ----- $18 SQL> select to_char(18,'999$') from dual; TO_CH ----- $18 0 字符 头部 或尾 部附加 0 例如 : SQL> select to_char(18.0,'0999') from dual; TO_CH ----- 0018 9 与上 类似 以指 定长 度返 回数 值格 式, 不 过 如果 被格 式化 的数 值长 度短 于指 定格 式, 则 以 空格 补足 。 [三思笔记]-日期时间及数字的格式化参数大全 http://www.5ienet.com/ QQ:5454589 君三思 例如: SQL> select to_char(18.0,'9999') from dual; TO_CH ----- 18 B 当整数部分是 0时返回空格(即使存在 0格式串也忽略)。 例如: SQL> select to_char(0.18,'B0999') from dual; TO_CH ----- C 返回 ISO 默认指定的标识(默认标识可参见:NLS_ISO_CURRENCY) 例如: SQL> select to_char(128.18,'C999999.99') from dual; TO_CHAR(128.18,'C ----------------- CNY128.18 D 返回指定的小数点形式(默认符:.)(默认标识可参见:NLS_NUMERIC_CHARACTER) 例如: SQL> select to_char(128.18,'9999D99') from dual; TO_CHAR( -------- 128.18 SQL> alter session set nls_numeric_characters=':"'; 会话已更改。 SQL> select to_char(128.18,'9999D99') from dual; TO_CHAR( -------- 128:18 EEEE 使用科学记数法显示 例如: SQL> select to_char(128.18,'9EEEE') from dual; [三思笔记 ]-日期时间及数字的格式化参数大全 http://www.5ienet.com/ QQ:5454589 君三思 TO_CHAR ------- 1E+02 G 与逗号功能类似,用指定字符分隔字串(默认符:,)( 默认标识可参 见:NLS_NUMERIC_CHARACTER)。 例如 : SQL> select to_char(11128.18,'99G999') from dual; TO_CHAR ------- 11,128 SQL> alter session set nls_numeric_characters=':"'; 会话 已更 改。 SQL> select to_char(11128.18,'99G999') from dual; TO_CHAR ------- 11"128 L 指定 位置 显示 本地 默认 符号 (默认 值见 : NLS_CURRENCY) 例如 : SQL> select to_char(999,'L999') from dual; TO_CHAR(999,'L -------------- ¥999 SQL> alter session set nls_currency='haha'; 会话 已更 改。 SQL> select to_char(999,'L999') from dual; TO_CHAR(999,'L -------------- haha999 MI 负值 在尾 部显 示 -号, 正值 在尾 部附 加空 格。 另: 该格 式符 必须 处于 格式 串尾 部 例如 : [三思笔记 ]-日期时间及数字的格式化参数大全 http://www.5ienet.com/ QQ:5454589 君三思 SQL> select to_char(-18,'999MI') from dual; TO_C ---- 18- SQL> select to_char(18,'999MI') from dual; TO_C ---- 18 PR 负值 以 <>尖括 号包 括, 正值 在头 尾部 各附 加空 格。 另: 该格 式符 必须 处于 格式 串尾 部 例如 : SQL> select to_char(-18,'999PR') from dual; TO_CH ----- <18> SQL> select to_char(18,'999PR') from dual; TO_CH ----- 18 RN/rn 返回 罗马 数字 形式 。注 :大 写格 式串 返回 大写 罗马 数字 ,小 写格 式串 返回 小写 罗马 数字 :) 例如 : SQL> select to_char(18,'RN') from dual; TO_CHAR(18,'RN' --------------- XVIII SQL> select to_char(18,'rn') from dual; TO_CHAR(18,'RN' --------------- xviii S 显示 数值 正负 值符 号。 可出 现于 格式 串首 部或 尾部 。 例如 : SQL> select to_char(18,'S9999') from dual; [三思笔记 ]-日期时间及数字的格式化参数大全 http://www.5ienet.com/ QQ:5454589 君三思 TO_CH ----- +18 SQL> select to_char(18,'9999S') from dual; TO_CH ----- 18+ TM 字符 格式 转换 (标准 数值 与科 学计 数法 ), 可 以通 过附加 9或e控制 输出 , 默 认是 tm9, 如 果输 出 超 过64 个字 符, 则数 据库 自动 转换 成科 学计 数法 显示 。该 格式 串不 能与 其它 的数 值型 格式 串同 时使 用。 例如 : SQL> select TO_CHAR(128,'tme') from dual; TO_CHAR(128,'TME') ---------------------------------------------------------------- 1.28E+02 SQL> select TO_CHAR(1.28E+02,'tm') from dual; TO_CHAR(1.28E+02,'TM') ---------------------------------------------------------------- 128 U 与L类似 ,在 指定 位置 显示 货币 单位 (默认 值见 : NLS_DUAL_CURRENCY) 例如 : SQL> select TO_CHAR(128,'999U') from dual; TO_CHAR(128,'9 -------------- 128¥ SQL> alter session set nls_dual_currency='aaa'; 会话 已更 改。 SQL> select TO_CHAR(128,'999U') from dual; TO_CHAR(128,'9 -------------- 128aaa V 数值 + 10 的n次方 , n=V 后9的个 数 [三思笔记 ]-日期时间及数字的格式化参数大全 http://www.5ienet.com/ QQ:5454589 君三思 例如 : SQL> select TO_CHAR(128,'999V999') from dual; TO_CHAR ------- 128000 X 返回 指定 数值 对应的 16 进制 数, 必 须 是正 数。 如 果 指定 数值 非整 的话 , oracle 会自动 round 取整 。 例如 : SQL> select TO_CHAR(16,'XXXX') from dual; TO_CH ----- 10 [三思笔记 ]-日期时间及数字的格式化参数大全 http://www.5ienet.com/ QQ:5454589 君三思 [[[ [ 三 思笔记 ]RMAN ]RMAN ]RMAN ]RMAN 高 级应用 之 Duplicate Duplicate Duplicate Duplicate 复 制数据库 http://www.itpub.net/906598.htmlhttp://www.itpub.net/906598.htmlhttp://www.itpub.net/906598.html http://www.itpub.net/906598.html [[[ [ 三 思笔记 ]RHEL]RHEL]RHEL ]RHEL AS4 AS4 AS4 AS4 下升级oracle10oracle10oracle10 oracle10 ggg g 到10.2.0.310.2.0.310.2.0.3 10.2.0.3 http://www.itpub.net/896394.htmlhttp://www.itpub.net/896394.htmlhttp://www.itpub.net/896394.html http://www.itpub.net/896394.html [[[ [ 三 思笔记 ]RHEL]RHEL]RHEL ]RHEL AS4 AS4 AS4 AS4 下安装32 32 32 32 位oracle10goracle10goracle10g oracle10g http://www.itpub.net/884137.htmlhttp://www.itpub.net/884137.htmlhttp://www.itpub.net/884137.html http://www.itpub.net/884137.html [[[ [ 三 思笔记 ]Statspack ]Statspack ]Statspack ]Statspack 初 步学和用 http://www.itpub.net/857807.htmlhttp://www.itpub.net/857807.htmlhttp://www.itpub.net/857807.html http://www.itpub.net/857807.html [[[ [ 三 思笔记 ]oracle ]oracle ]oracle ]oracle 著 名及非著名函数介绍 http://www.itpub.net/843333.htmlhttp://www.itpub.net/843333.htmlhttp://www.itpub.net/843333.html http://www.itpub.net/843333.html [[[ [ 三 思笔记 ]]] ] 一 步一步 学 rmanrmanrman rman http://www.itpub.net/810100.htmlhttp://www.itpub.net/810100.htmlhttp://www.itpub.net/810100.html http://www.itpub.net/810100.html [[[ [ 三 思笔记 ]]] ] 学 习动态性能表 http://www.itpub.net/782892.htmlhttp://www.itpub.net/782892.htmlhttp://www.itpub.net/782892.html http://www.itpub.net/782892.html
还剩19页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 5 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

相忘于2012

贡献于2010-09-27

下载需要 5 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf