当前位置:  开发笔记 > 编程语言 > 正文

在Informix中进行转换

如何解决《在Informix中进行转换》经验,为你挑选了2个好方法。

在Informix中,如何将char(8)类型转换为money类型,以便将其与其他money类型进行比较?

使用" tblAid.amt::money as aid_amt"不起作用.使用" (tblAid.amt * 1) AS aid_amt"不起作用.



1> SKapsal..:

试试这个 - >

select (disb_amt::NUMERIC) disb_amt from tmp_kygrants;

您可以将金额作为数字进行比较.



2> Jonathan Lef..:

第一个问题 - 为什么你不在数字列中存储数值?这会使你的其余问题没有实际意义.这也意味着您的系统将表现更好.当您需要存储数据值时,请使用明显的类型; 除非数据是字符串,否则不要使用字符串类型.

如前所述,您可以使用非标准的Informix强制转换表示法:

SELECT some_column::MONEY FROM WhereEver;

您还可以对投射类型更加小心 - 例如使用MONEY(8,2).您还可以使用标准表示法:

SELECT CAST(some_column AS MONEY(8,2)) FROM WhereEver;

这假设您使用的是IDS 9.x或更高版本 - 旧产品根本不支持转换.但是,一般来说,Informix非常适合自动进行转换(例如,将数字转换为字符串).但是,字符串是按字典顺序进行比较而不是数字进行比较,因此在这种情况下CAST可能更明智 - 但是首先使用正确类型避免使用强制转换的需求仍然更为明智.

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有