`
53873039oycg
  • 浏览: 841845 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

oracle to_char函数中fmt用法简记

阅读更多

       今天看到一个这样的sql :

      

select ccode,
       times,
       pt,
       to_char(last_value(decode(pt, 0, null, pt) ignore nulls)
               over(partition by ccode order by times),
               'fm90.09') new_pt
 from tmp_t;

    对to_char(value,'fm90.09')里面的fm90.09很陌生,虽然可以猜出是格式化用的,但是里面的0,9代表什么不知道

 

    to_char用法:TO_CHAR ( n [, fmt [, 'nlsparam']] ) 

   官方文档链接:http://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements004.htm,里面有详细的介绍. 

 

    下面我要说的是to_char fm90.09代表什么,参考了博文http://www.cnblogs.com/liubiqu/archive/2008/01/17/1042403.html。 

    

    总结如下

     1,有9的地方如果有数字就显示如果没有数字就不显示,有0的地方在没有数字的时候也会有0来占位

    

select to_char(9999.09556,'fm99999.0900'),to_char(9999.09556,'fm00099.0900') from dual

   结果为:

  

  

    2,截取小数的时候是四舍五入

select to_char(90.99,'fm999.0')保留一位小数,to_char(90.99,'fm999.00')保留2位小数 from dual

    结果为:

   

 

    3,如果用fm9.99 整数仍然会显示.,如果不需要需要替换

 

select to_char(9,'fm99.99'),regexp_replace(to_char(9,'fm99.99'), '\.$', '') from dual

   

    

     4,fm中整数部分需大于等于值的整数部分长度

select to_char(99999.09, 'fm9.09'),
       to_char(99999.09, 'fm99.09'),
       to_char(99999.09, 'fm999.09'),
       to_char(99999.09, 'fm9999.09'),
       to_char(99999.09, 'fm99999.00')
  from dual

   结果为:

 

  

  

select to_char(99999.09, 'fm0.09'),
       to_char(99999.09, 'fm00.09'),
       to_char(99999.09, 'fm000.09'),
       to_char(99999.09, 'fm0000.09'),
       to_char(99999.09, 'fm00000.00')
  from dual

   结果为:

 

   综合例子为

with tmp_t as(
select 1 as v_id,0.02 as v_value from dual union all
select 2,10.02 from dual union all
select 3,0.054 from dual union all
select 4,20.01 from dual union all
select 5,-21.006 from dual union all
select 6,-1 from dual union all
select 7,-2.004 from dual union all
select 8,20.046 from dual)
select v_id,
       v_value,
       to_char(v_value)v_1,
       to_char(v_value, 'fm90.09')v_2,
       regexp_replace(to_char(v_value, 'fm90.9'), '\.$', '') v_3,
       regexp_replace(to_char(v_value, 'fm90.09'), '\.$', '') v_4,
       regexp_replace(to_char(v_value, 'fm90.09'), '\.0*$', '') v_5
  from tmp_t

   结果为:

  

 

    如有错误,欢迎提出,谢谢

    全文完

 

    

 

  • 大小: 2.1 KB
  • 大小: 3.1 KB
  • 大小: 3 KB
  • 大小: 10.9 KB
  • 大小: 10.3 KB
  • 大小: 22.1 KB
0
0
分享到:
评论

相关推荐

    AV_SAMPLE_FMT_FLTP转为AV_SAMPLE_FMT_S16P(ffmpeg)

    AV_SAMPLE_FMT_FLTP转为AV_SAMPLE_FMT_S16P(ffmpeg),在使用ffmpeg解码aac的时候,如果使用avcodec_decode_audio4函数解码,那么解码出来的会是AV_SAMPLE_FMT_FLTP 格式的数据( float, 4bit , planar), 如果我们希望...

    Oracle数据库开发之函数概述

    例如,TO_CHAR(date[,fmt[,params]])函数可以将日期类型转换成字符串类型,而TO_DATE(char[,fmt[,params]])函数则将字符串转换成日期类型。TO_NUMBER(char[,fmt])将字符类型转换成数字类型,而TO_CHAR(number[,fmt])...

    单元十一:数据类型的显式转换TOCHAR用于数值型完美版资料.pptx

    在Oracle数据库系统中,`TO_CHAR`函数被广泛用于将数值型数据转换为字符型数据,以便进行格式化输出或者满足特定的显示需求。本单元主要讲解`TO_CHAR`函数在处理数值型数据时的用法和格式化选项。 `TO_CHAR`函数的...

    单元十一:数据类型的显式转换TODATE(1)完美版资料.pptx

    该函数的语法为 TO_DATE(char[, 'fmt']),其中 char 是要转换的字符串,fmt 是可选的格式字符串。 TO_DATE 函数的作用是将字符串转换为日期型数据,以便在数据库中存储和操作日期型数据。例如,在员工信息表中,...

    oracle日期处理全集-日期加减全活儿.docx

    其语法为 `to_char(date, fmt)`,其中 `date` 是要转换的日期,`fmt` 是指定的格式。例如,`to_char(sysdate, 'YYYY-MM-DD HH24:MI:SS')` 将当前日期按照 "YYYY-MM-DD HH24:MI:SS" 格式转换为字符串。 next_day 函数...

    oracle日期处理全集-日期加减全活儿.doc.docx

    9. TO_CHAR(d, fmt) 函数:该函数将日期 d 按照 fmt 指定的格式转换成字符串。 示例:SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS Today FROM dual; 10. TO_DATE(st, fmt) 函数:该函数将字符串 st 按照...

    单元十一:数据类型的显式转换TOCHAR用于数值型(1)完美版资料.pptx

    `TO_CHAR`函数是Oracle数据库系统中一个非常重要的函数,它允许我们以用户自定义的格式展示数值数据。 `TO_CHAR(number, 'fmt')`是`TO_CHAR`函数的基本语法,其中`number`是你想要转换的数值,`'fmt'`是格式模型,...

    oracle常用字符函数

    下面将详细解释这些函数的用途和使用方法。 1. **字符函数** - `LOWER(char)`: 该函数用于将输入的字符串`char`中的所有大写字母转换为小写字母,常用于不区分大小写的查询或比较。 - `UPPER(char)`: 与`LOWER`...

    SQL语言内部培训讲义PPT

    在"to_char_fmt.html"中可能详细介绍了TO_CHAR函数的各种格式化选项。 五、练习与应用 "execise.txt"很可能是包含了一些SQL练习题,用于巩固学习效果。这些练习可能涉及到前面提到的DDL、DML、DCL,以及Oracle特定...

    oracle函数大全.doc

    SQL> select to_char(sysdate,'yyyy.mm.dd'),to_char((sysdate)+1,'yyyy.mm.dd') from dual; TO_CHAR(SY TO_CHAR((S ---------- ---------- 2004.05.09 2004.05.10 SQL> select last_day(sysdate) from dual; LAST_...

    日立电梯NPH-105_GVF2的FMT板操作.pdf

    维护和操作电梯FMT板需要遵守相关的法律法规和行业标准,例如电梯的安全使用规范、定期检验制度等。操作人员应确保所有操作符合国家或地方的要求。 以上内容是基于一般性的电梯维护操作知识和对文档标题的解读构建...

    dhcp_minires_and_fmt_string.nasl

    dhcp_minires_and_fmt_string

    FFmpeg编译出错undefined reference to `img_convert’的解决方法

    FFmpeg 编译出错 undefined reference to `img_convert’的解决方法 FFmpeg 是一个开源的多媒体处理框架,提供了强大的音视频处理能力。然而,在使用 FFmpeg 库函数时,可能会遇到编译出错的错误,例如 undefined ...

    MYSQL,SQLSERVER,ORACLE常用的函数

    根据提供的标题和描述,本文将详细介绍在MySQL、SQL Server以及Oracle数据库中常用的函数。这些函数主要分为几大类:字符串处理函数、数值处理函数、日期处理函数、转换函数以及其他一些特殊用途的函数。 ### 字符...

    安卓系统采用v4l2接口(类uvc)打开YUYV和MJPEG摄像头,支持热插拔。

    v4l2接口支持两种摄像头数据格式“V4L2_PIX_FMT_YUYV”和“V4L2_PIX_FMT_MJPEG”,网上大部分示例给出的是采用“V4L2_PIX_FMT_YUYV”格式的, private boolean isMJPEGCamera=false; //false--V4L2_PIX_FMT_YUYV,...

    FMT0371_V100.rar_2.5tft_FMT03_东芝

    《东芝2.5寸TFT液晶屏技术详解——基于FMT0371_V100.pdf文档解析》 在电子设备的显示技术中,液晶屏幕占据着至关重要的地位,尤其是在便携式设备和小型电子产品的应用上。本文将深入探讨东芝的一款2.5英寸TFT(薄膜...

    oracle日期处理全集-日期加减全活儿.doc.pdf

    TO_CHAR 函数将日期 d 转换为字符串,根据 fmt 指定的格式。 示例代码: ```sql SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS TODAY FROM dual; ``` 结果: ``` TODAY ------------------- 2020-09-08 10:...

    Python库 | tox_ini_fmt-0.3.0.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:tox_ini_fmt-0.3.0.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    oracle plsql函数大全

    Oracle PL/SQL函数是数据库操作中不可或缺的一部分,它们提供了丰富的功能,用于处理字符串、数值、日期以及数据类型的转换。以下是对这些函数的详细解释: 1. `ASCII('A')`: 返回字符'A'的ASCII码,即十进制的65。...

    Oracle110个常用函数

    ROUNDED_DATE---------01-OCT-2129.TO_CHAR(date, fmt)将日期转换为字符格式;SQL> select to_char(sysdate, 'YYYY-MM-DD HH24:MI:SS') char_date from dual;CHAR_DATE-----------------2021-10-05 13:58:5530.TO_...

Global site tag (gtag.js) - Google Analytics