码迷,mamicode.com
首页 > 数据库 > 详细

关于oracle当中数据类型转换的问题

时间:2018-08-23 22:18:39      阅读:284      评论:0      收藏:0      [点我收藏+]

标签:不能   数据转换   字符   数据库   com   例子   情况   img   select   

今天在做项目的过程当中发现,我们在使用mybatis从数据库中拿数据。但是死活不能转化成我们想要的形式。

然后在网上查了相关的资料;

基本的转化如下:

select CAST(1034.0 AS NUMBER (10, 2) ) as aa from  UTTDB.UTT_TRANS_LOG

技术分享图片

这里使用的是将数据转换成number类型,然后保留两位小数的形式。

select CAST(TRANS_AMT AS DECIMAL (10, 2) ) as aa from UTTDB.UTT_TRANS_LOG

这里是将数据转换成为decimal类型,然后保留两位小数的形式。

select to_char(TRANS_AMT, 999.00) as aa from  UTTDB.UTT_TRANS_LOG

这里是将数据转换成字符的形式,也是保留两位小数。

这里值得注意的是,我们在对数据进行转换的时候一定要注意数据的长度,否则转换的结果就出现下面的情况:

    select to_char(TRANS_AMT, 99.00) as aa from  UTTDB.UTT_TRANS_LOG
这条语句是将数据转化成最大99,保留两位小数的形式。然后看下面的结果:
技术分享图片

 

这里明显的看到我们在对数据比较大的进行转化的时候出现了错误,所以转化一定要和数据库保持一致。

 还有一点需要注意,在oracle当中我们将数据转换成字符串的时候,如果位数很多,他就会在前面补充相应的空格。例子如下:

 

SELECT to_char(TRANS_AMT, 9999999999999999999999999999999999999999999999.00)as aa from  UTTDB.UTT_TRANS_LOG

这里的位数过多的话,在查询的时候显示的效果如下:

技术分享图片

从上面可以看出在数据位数不够的情况下,我们会看到被空格占据。这个时候我们就要考虑去空格的操作:

这时候去除左边的空格,操作如下:

SELECT LTRIM(to_char(TRANS_AMT, 9999999999999999999999999999999999999999999999.00))as aa from  UTTDB.UTT_TRANS_LOG

使用LTRIM()方法即可。

 

关于oracle当中数据类型转换的问题

标签:不能   数据转换   字符   数据库   com   例子   情况   img   select   

原文地址:https://www.cnblogs.com/gxgd/p/9526247.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!