mysql的数据转换

在sql语句中完成对数字类型的数据转换成字符类型的数据。
像这次将读取出来的float类型的数据,在进行jsonObject.fromObject(object).toString();
这个方法,并没有将数据类型要保留的小数点后几位进行保留,就像100.00 这个数据,进过json数据转换后变成了100,不利于显示的效果。
同时,由于我是通过sql语句查询出来的一个list集合,那么逐一在java代码中修改的话是难实现且效率低的,因此考虑在sql中实现。

在mybatis中实现,CONVERT(q.quotediscountamount,CHAR(20))
------------------------------
SELECT s.taskcode,p.prvshotname,CONVERT(q.quotediscountamount,CHAR(12)) as quoteamount,q.inscomcode,s.taskstate from insbworkflowmain m
LEFT JOIN insbworkflowsub s ON m.instanceid = s.maininstanceid
LEFT JOIN insbquoteinfo q ON q.workflowinstanceid = s.instanceid
LEFT JOIN insbprovider p ON p.prvcode = q.inscomcode where m.instanceid= #{processInstanceId}
------------------------------
CONVERT(q.quotediscountamount,CHAR);这里也可以去掉长度的限制

同理将其他格式的也可转换
BINARY[(N)]

CHAR[(N)]

DATE

TIME

DATETIME 日期时间

DECIMAL 浮点数

SIGNED [INTEGER] 整数

UNSIGNED [INTEGER] 无符号整数
-----------------------------------------
DATE,TIME,DATETIME 三种时间的不同:
DATE:日期类型,MySQL检索并且以'YYYY-MM-DD'格式显示DATE值,没有时间部分。
TIME:时间类型,表示一天中的时间,MySQL检索并且以"HH:MM:SS"格式显示TIME值。
DATETIME:日期时间类型,两者之和。

另外mysql中还有一种:
TIMESTAMP,列类型提供一种类型,你可以使用它自动地用当前的日期和时间标记INSERT或UPDATE的操作。

---------------------------------------

DecimalFormat format = new DecimalFormat("#.00");
String sMoney = format.format(s);
System.out.println(sMoney);

 

posted on 2015-12-30 17:11  FakerWang  阅读(659)  评论(0编辑  收藏  举报

导航