【问题标题】:What is the type of 100.0 in PostgreSQL?PostgreSQL 中 100.0 的类型是什么?
【发布时间】:2021-09-09 12:14:39
【问题描述】:

我正在尝试了解在 PostgreSQL 中我更愿意转换为 NUMERIC 还是 DECIMAL。我读过they are basically functionally the same。可能影响我决定的一个因素是手动写入十进制数时的默认类型,例如

SELECT percentage, 100.0
FROM grades

所以问题是:

上面查询中的 100.0 是什么类型?

我无法在之前的问题中找到答案。我只知道如何在数据库中查找列的类型,而不是单个数字。谢谢你的帮助。

【问题讨论】:

    标签: sql postgresql types default


    【解决方案1】:

    字面量值的类型是numeric(或decimal,也是一样的)。这在documentation 中有解释。但是,文档有点复杂。小数点使这个数字。如果没有小数点,则可以是 intbigint

    Postgres 支持numeric 没有比例和精度,所以这些实际上是NULL

    为了回答这类问题,我经常做一个简单的测试。以下想法适用于任何数据库:

    create table t as
        select 100.0 as x;
    
    select * 
    from information_schema.columns
    where column_name = 'x';
    

    或者对于更简单的特定于 Postgres 的方法:

    select pg_typeof(100.0)
    

    this db<>fiddle

    【讨论】:

    • 感谢您的帮助。在您回答后,我还尝试了您对select pg_typeof(100.0) 的建议,输出为numeric。 5 分钟计时器结束后,我会立即接受您的回答。
    猜你喜欢
    • 2020-10-30
    • 2010-11-15
    • 2014-06-24
    • 2011-03-15
    • 2021-05-04
    • 2021-12-10
    • 1970-01-01
    • 2021-12-14
    • 2012-07-31
    相关资源
    最近更新 更多