ITPUB??ì3
ITPUB论坛 » IBM数据库产品 » DB2类似于Oracle的TRUNC函数?

标题: DB2类似于Oracle的TRUNC函数?
离线 mwgxq
一般会员



精华贴数 0
个人空间 0
技术积分 422 (4414)
社区积分 4 (16626)
注册日期 2004-8-4
论坛徽章:0
      
      

发表于 2007-7-16 21:23 
DB2类似于Oracle的TRUNC函数?

DB2有类似于Oracle的TRUNC函数?怎么写的话怎么实现?谢谢!


只看该作者    顶部
离线 askgyliu
老会员



精华贴数 0
个人空间 0
技术积分 1506 (1054)
社区积分 0 (1428849)
注册日期 2007-6-14
论坛徽章:4
现任管理团队成员会员2007贡献徽章ITPUB新首页上线纪念徽章在线时间  
      

发表于 2007-7-16 21:46 
ORACLE的TRUNC包罗万象,DB2的TRUNC只是给数字用的。但象DATE等都能实现。比如,DATE(A TIMESTAMP FIELD)会把TIMESTAMP后面的都拿掉,成了一个PURE DATE,就象ORACLE的TRUNC(SYSDATE)会把后面的时间拿掉一样。


只看该作者    顶部
离线 mwgxq
一般会员



精华贴数 0
个人空间 0
技术积分 422 (4414)
社区积分 4 (16626)
注册日期 2004-8-4
论坛徽章:0
      
      

发表于 2007-7-16 22:00 
是这样的,我用ROUND(2345.6789,2)得到的结果是:2345.6800,后面的两个0是没有意义的,我想将其截断,请问怎么实现?在Oracle中得到的结果应该是2345.68,这样就对了,不知DB2怎么是这样实现的,很奇怪。


只看该作者    顶部
离线 askgyliu
老会员



精华贴数 0
个人空间 0
技术积分 1506 (1054)
社区积分 0 (1428849)
注册日期 2007-6-14
论坛徽章:4
现任管理团队成员会员2007贡献徽章ITPUB新首页上线纪念徽章在线时间  
      

发表于 2007-7-17 09:03 
SQL> select trunc(2345.6789,2) from dual;

TRUNC(2345.6789,2)
------------------
           2345.67


/home/db2inst > db2 -v "select decimal(2345.6789,10,2) from sysibm.sysdummy1"
select decimal(2345.6789,10,2) from sysibm.sysdummy1

1
------------
     2345.67

  1 record(s) selected.


只看该作者    顶部
离线 mwgxq
一般会员



精华贴数 0
个人空间 0
技术积分 422 (4414)
社区积分 4 (16626)
注册日期 2004-8-4
论坛徽章:0
      
      

发表于 2007-7-17 11:26 
谢谢,没想到decimal还有这种功能。

另外,探讨一下:decimal是截断,round是四舍五入,我可以使用
decimal(round(2345.6789,2),10,2) 得到我要的结果,但有没有单一的函数能实现四舍五入和截断后面的0这样的功能呢?


只看该作者    顶部
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问