近期在使用oracle to_char函数处理浮点数时发现有坑,这里做个小结:

网上可以找到关于to_char中使用fm9990.0099中的相关解释:

0表示:如果参数(double或者float类型)存在数字就显示数字,不存在数字就显示0

9表示:如果参数(double或者float类型)存在数字就显示数字,不存在数字就显示空格

FM表示:将9带来的空格删除

下面通过具体代码进行相关验证

--SQL示例代码:

With Tmp As

(Select 2312320.012 n From dual Union All

Select 0.012322 n From dual Union All

Select 0.012564 n From dual Union All

Select -0.012 n From dual Union All

Select -10023 n From dual Union All

Select 8989898 n From dual)

Select --全部为 9

To_Char(t.n, '9999999999.9999999') all_9,

--全部为 9 同时使用 FM

To_Char(t.n, 'FM999999999999999.9999999') all_FM9,

--全部为 0

To_Char(t.n, '000000000.0000000') all_0,

--全部为 0 同时使用 FM

To_Char(t.n, 'FM000000000.0000000') all_FM0,

--个位开始向右使用 0 向左使用9

To_Char(t.n, '9999999990.0000000') some9one0,

--个位开始向右使用 0 向左使用9 同时使用FM

To_Char(t.n, 'FM999999999999990.00000000') some9one0P0_FM,

--个位使用 0 同时使用FM

To_Char(t.n, 'FM999999999999990.99999999') some9one0P9_FM,

--个位使用 0 前四位小数位使用 0 同时使用FM

To_Char(t.n, 'FM999999999999990.0000999') some9one0P09_FM

From tmp t;

--执行结果:

--总结:

1、9在不同的地方可能会使用不同的占位符:整数位使用空格;小数位有有效数时使用0,无有效数时使用空格;

2、9对于绝对值小于1的小数的个位会处理成空格

3、FM只能用来删除9所产生的多余的占位符(空格或0),对于0产生的占位符无效。

--思考:

四舍五入可以通过控制9或0的个数实现。

oracle to_char(_fm09),oracle to_Char fm 函数相关推荐

  1. to_char在oracle 中函数使用方法

    Oracle to_char函数使用oracle 10 g中 to_char(x,fmt)使用,如果x是日期,fmt则应该是日期格式代码,形如to_char(date,'am') fmt格式代码如下: ...

  2. oracle、sqlserver、mysql常用函数对比[to_char、to_number、to_date]

    oracle.sqlserver.mysql常用函数对比[to_char.to_number.to_date] oracle   -->    mysql to_char(sysdate,'yy ...

  3. oracle to_char ww,oracle中Select To_Char(Sysdate, 'ww') From Dual;这是什么意思

    oracle中Select To_Char(Sysdate, 'ww') From Dual;这是什么意思 关注:154  答案:3  手机版 解决时间 2021-01-28 03:05 提问者森很绿 ...

  4. oracle 指定格式化,Oracle中的格式化函数

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

  5. oracle 进制,Oracle进制转换函数

    Oracle中没有16进制转2进制的函数,为了工作方便,自己写了一个 create or replace function hex_to_bin(hex varchar2) return varcha ...

  6. oracle学习笔记(二)------函数

    函数:单行函数,多行函数 单行函数:字符函数,Number函数,日期函数,转换函数,系统函数 (oracle中所有字母都是以大写字母存储的) 字符函数:转换函数,字符操纵函数     转换函数:low ...

  7. oracle内部函数,[数据库]Oracle内置函数

    [数据库]Oracle内置函数 0 2020-08-21 19:00:31 lpad()函数:用于左补全字符串. 例:lpad('原始数据','预期长度','填充字符') ,lpad('123','5 ...

  8. oracle的dtime,Oracle时间函数

    YYYY年 Q季度 MM月 month月 WW当年第几周 W本月第几周 DDD 当年第几天 DD当月第几天 D当周内第几天 DY当周内星期几 day当周内星期几 HH或HH12:12进制小时数 HH2 ...

  9. oracle 不等函数,SQL(Oracle)日常使用与不常使用函数的汇总

    --日常使用的sql语句和oracle语句,有些相对使用的频率比较高,收藏起来还是比较值得的 -- 绝对值 SQL:select abs(-1) value Oracle:select abs(-1) ...

最新文章

  1. MySQL01-安装mysql数据库
  2. AndroidStudio使用第三方jar包报错(Error: duplicate files during packaging of APK)
  3. C#连接Oracle数据库的方法(Oracle.DataAccess.Client也叫ODP.net)
  4. iOS微博web网页出现的天坑 (斗鱼App 当前版本5.600有这个bug)
  5. NanoID 了解一下?比 UUID 更好用!
  6. 【使用递归玩通关汉诺塔游戏】算法01-递归(斐波那契数列、汉罗塔问题)-java实现
  7. OpenCV图像处理使用笔记(三)——单通道的Mat对象强转为三通道的Mat对象
  8. DOS调用21H存取中断向量
  9. CentOS 7安装GitLab、汉化、配置邮件发送
  10. POJ1228(稳定凸包问题)
  11. 不会Netty,你也永远不会熟悉Java
  12. ceph osd学习小结
  13. python123九宫格输入法_python制作朋友圈九宫格图片
  14. 老板说“把系统升级到https”,我用一个脚本实现了,而且永久免费!​
  15. python爬取文献资料_Python 批量爬取Web of Science 文献信息数据
  16. 关于同构关系的一些证明(1)
  17. 安全组设置IP段 -- 示列
  18. 符号在excel中的引用_如何在Excel工作表中添加表情符号
  19. matlab from workplace,关于使用From workspace的问题
  20. NBA底层球员的活法

热门文章

  1. Altium Designer Library 介绍 - 3M Footprints
  2. [java篇]包和继承,组合
  3. wifi提速技巧:十大方法瞬间提升wifi速度
  4. css专栏 01.css简介 02.css注释及语法结构
  5. 我的创作纪念日——创作历程,机缘,与成就
  6. DevStore一键锁屏源码学习
  7. 数据库主键一定要自增吗?有哪些场景不建议自增?
  8. 从制作原理的角度理解——为什么Lofi音乐适合学习和工作的时候听
  9. sklearn 数据处理与特征工程
  10. 数据预处理和特征选择