Oracle 关于number类型转换to_char类型 存在的问题

select to_char(0.1) nums from dual;

观察发现如果小数的整数位是0, 转换字符串之后没有了前面的0,如果需要前面的0,则需要一定的规则进行格式化,示例如下

select to_char(0.1,‘0.9‘) nums from dual;

我们把小数换成整数后再看

select to_char(1,‘0.9‘) nums from dual;

整数也会编程double类型

关于to_char(x,y),y的规则有很多,这里不详解,如果想要整数还是整数,小数还是小数的情况下,可以试试下面的方法,借助replace

参考示例如下:

select unitname,hurk,ldrk,replace(b,‘:.‘,‘:0.‘) scale,rdate from (select unitname,hurk,ldrk,concat( ‘1:‘,round(hurk / ldrk,2)) b,rdate from DYNAMICPEOPLE)

时间: 2024-10-19 16:04:17

Oracle 关于number类型转换to_char类型 存在的问题的相关文章

float和double的范围和精度,Oracle的Number类型

double.float都是浮点型.double(双精度型)比float(单精度型)存的数据更准确些,占的空间也更大.double精度是float的两倍,所以需要更精确的计算常使用double. 单精度浮点数在机内占4个字节,用32位二进制描述.双精度浮点数在机内占8个字节,用64位二进制描述. 浮点数在机内用指数型式表示,分解为:数符,尾数,指数符,指数四部分.数符占1位二进制,表示数的正负.指数符占1位二进制,表示指数的正负.尾数表示浮点数有效数字,0.xxxxxxx,但不存开头的0和点指数

ORACLE 中NUMBER 类型 低精度转换成高精度

例如: 表User中有一个字段 salary  Number(10,3), 如果想把字段salary的类型提高精度到salary  Number(10,6),保留六位小数, 解决办法:1,ALTER TABEL USER MODIFY SALARY NUMBER(13,6); 解释:number类型刚开始是,长度10位,3位小数,如果想增加3位小数,对应的长度也必须增加,否则无法修改.所以NUMBER(13,6);这样就可以提高精度了, ORACLE 中NUMBER 类型 低精度转换成高精度

对于Oracle中Number类型的字段映射成Java中的具体类型的问题

我在Oracle中给一个用户Id字段设置为Number类型,使用JDBC在完成ORM的时候,以为其可以自动转换为Integer,因为我的POJO类id舒心实用的就是Integer.但事实是,我在测试的时候,发现所有的用户id全为null,还在奇怪明明数据库中id是有值的,为什么取不到? 原因在于Oracle的Number类型映射为Java类型中的 java.math.BigDecimal (不可变的.任意精度的有符号十进制数)类型,并不是我简单认为的 Integer ,还会报一个错误: 就是说B

Oracle隐式类型转换

详细连接:http://blog.163.com/lsj_start/blog/static/17826443920111112103716524/ http://blog.itpub.net/29324876/viewspace-1096741/   (用explain查看隐式转换) oracle有三种最基本的数据类型,即字符型.数值型.日期型.同时提供类型转换函数 1)to_char     数值.日期->字符型     语法:to_char(num|date,[format mask],[

Oracle数据库中的blob类型解析

Oracle的Blob字段比较特殊,他比long字段的性能要好很多,可以用来保存例如图片之类的二进制数据. 写入Blob字段和写入其它类型字段的方式非常不同,因为Blob自身有一个cursor,你必须使用cursor对blob进行操作,因而你在写入Blob之前,必须获得cursor才能进行写入,那么如何获得Blob的cursor呢? 这需要你先插入一个empty的blob,这将创建一个blob的cursor,然后你再把这个empty的blob的cursor用select查询出来,这样通过两步操作

Oracle中常用的to_Char用法详解

Oracle中常用的to_Char用法详解(有FMT的详细列表) The following are number examples for the to_char function. to_char(1210.73, '9999.9') would return '1210.7' to_char(1210.73, '9,999.99') would return '1,210.73' to_char(1210.73, '$9,999.00') would return '$1,210.73'

oracle的number的浅析

author:skate time:2011-02-14 oracle的number的浅析 从例如以下几个方面来认识number 1.表示的数值范围   2.占用的存储空间   3.number的性能 我们日常主要定义数值存储列是大都是用number,只是oracle也兼容一些以他类型,例如以下: NUMERIC(p,s):全然映射至NUMBER(p,s).假设p未指定,则默觉得38.DECIMAL(p,s)或DEC(p,s):全然映射至NUMBER(p,s).假设p为指定,则默觉得38.INT

oracle的to_number、to_char、to_date用法

TO_DATE 是把字符串转换为数据库中得日期类型转换函数TO_CHAR 是把日期或数字转换为字符串TO_NUMBER 将字符转化为数字 TO_DATE使用TO_DATE函数将字符转换为日期TO_DATE(char, '格式')例1:select to_date('2012-07-01 10:00:00','yyyy-mm-dd hh24:mi:ss') from dual;select to_date('2012-07-01 10:00','yyyy-mm-dd hh24:mi') from

oracle中数据类型对应java类型

地址: http://otndnld.Oracle.co.jp/document/products/oracle10g/102/doc_cd/Java.102/B19275-03/datacc.htm#BHCJBJCC SQL数据类型 JDBC类型代码 标准的Java类型 Oracle扩展的Java类型   1.0标准的JDBC类型:     CHAR java.sql.Types.CHAR java.lang.String oracle.sql.CHAR VARCHAR2 java.sql.T