首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NZSQL/Code -如何将NZSQL设置为不舍入到最近的整数

NZSQL/Code -如何将NZSQL设置为不舍入到最近的整数
EN

Stack Overflow用户
提问于 2014-12-16 16:33:54
回答 1查看 501关注 0票数 1

所有人。

我正在使用NZSQL中的一些函数,发现NZSQL舍入到最近的整数,并且不确定这是函数的设计,还是可以禁用舍入。

我使用的函数之一是

TO_NUMBER(年龄(Column_a),'000')

它会转到最近的数,但是我想让它保持在十进制数。大概是12.42。这个是可能的吗?我应该使用不同的功能吗?我试过用“00.000”,但它还在弹.

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-17 22:33:53

AGE函数返回一个间隔,当与TO_NUMBER的格式模板配对时,这个间隔可能不像您所期望的/希望的那样。模板的形状具有不同于直觉的特殊含义。

例如,这里有一个与数字(20,6)相对应的格式模板。

代码语言:javascript
复制
SYSTEM.ADMIN(ADMIN)=> select age('01/01/1960'::date) , to_number(age('01/01/1960'::date),'99999999999999999999.999999');
                AGE                |      TO_NUMBER
-----------------------------------+---------------------
 54 years 11 mons 15 days 23:17:21 | 541115231721.000000
(1 row)

在这里,您可以在TO_NUMBER的结果中看到以数字表示的间隔。前两位代表54年,后两位代表11个月,小数点之前的最后两位代表21秒。请注意,小数点以上没有值,这是预期的(如果不是我们设计的话)。

如果我们从小数点的右边或左边从模板中取一个9,我们就会得到一个错误的响应。请注意,48秒被截断为仅4秒。

代码语言:javascript
复制
SYSTEM.ADMIN(ADMIN)=> select age('01/01/1960'::date) , to_number(age('01/01/1960'::date),'9999999999999999999.999999'), to_number(age('01/01/1960'::date),'99999999999999999999.99999');
                AGE                |     TO_NUMBER      |     TO_NUMBER
-----------------------------------+--------------------+--------------------
 54 years 11 mons 15 days 23:27:48 | 54111523274.000000 | 54111523274.000000
(1 row)

这里的重点仅仅是强调TO_NUMBER模板的格式所做的事情,而不是您可能期望/想要的。

相反,您可能想要的(如果我从您的评论中得到正确的要点)是这样的,它使用DATE_PART作为DATEDIFF的松散替代品:

代码语言:javascript
复制
SYSTEM.ADMIN(ADMIN)=> select date_part('day',now() - '01/01/1960'::date) / 365.242;
  ?COLUMN?
------------
 54.9580826
(1 row)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27509443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档