表中有一字段:金额,real类型,如何在查询结果中强制显示两位小数
如=200 则为:200.00
=200.1 则为:200.10
=1.333 则为:1.33有就是类似于 access sql 中的 format:select format(金额,'0.00') from tab请帮我写一个等价的语句,非常感谢!
如=200 则为:200.00
=200.1 则为:200.10
=1.333 则为:1.33有就是类似于 access sql 中的 format:select format(金额,'0.00') from tab请帮我写一个等价的语句,非常感谢!
select col=convert(numeric(18,2),col) from tb
或
select col=cast(col as numeric(18,2)) from tb
Select Convert(numeric(18,2), 200.1) AS MSum
Select Convert(numeric(18,2), 1.333) AS MSum
在查询分析器中输出为:200.00
在企业管理器中(右键单击任何一个表->打开表->查询...)输出为:200,(200.1=200.1,1.333=1.33)在程序中的情况和2一样不信你试一下
select cast(金额 as decimal(14,2)) from tb
select convert(decimal(14,2), 金额) from tb
加个adodc和datagrid控件,把2者关联起来,随便关联一个数据库,adodc.recordsource="select cast(200,numeric(9,2))",然后刷新一下,结果还是没有小数位,请问sql77,有没有什么其他方法,要求在语句中能解决的。谢谢!!
-----------
200.00(所影响的行数为 1 行)在语句中这样不行吗,要在查询分析器中执行,企业管理器有些不支持
LZ这样试试
建议楼主用临时表,[金额] decimal(20,2) default 0 NULL
insert into后再SELECT
LZ这样试试你的方法非常好,适用最大7位整数,VARCHAR(10)也刚好和NUMERIC(9,2)匹配,小了碰到7位整数就报错。我也碰到过这种问题,再来一个最笨办法:
建议楼主用临时表,[金额] decimal(20,2) default 0 NULL
insert into后再SELECT
临时表肯定可以的,就是复杂了一点
2、非常感谢SQL77,感谢您的热情帮助
3、感谢其他朋友的参与谢谢大家