【问题标题】:postgres metric imperial conversionpostgres 公制英制转换
【发布时间】:2017-04-18 05:53:06
【问题描述】:

是否有任何隐藏标准的扩展方式来转换上述内容?

例如select some_float at measurement system 'imperial' 就像我们所做的time zoneconvert_ms(some_value,'litre', 'pint') 或其他?当然,在输出值之前需要应用额外的数据类型,如“重量”、“体积”、“距离”和规则。

我不希望locale 在这里提供帮助,因为它需要计算,而不仅仅是货币之前的符号、日期顺序或分隔数千左右的符号。但是我们可以SET timezone 并计算差异(即使考虑到夏令时),所以有机会。

【问题讨论】:

    标签: postgresql


    【解决方案1】:

    您的意思是使用维度单位注释数据的扩展。 https://github.com/ChristophBerg/postgresql-unit 就是这样一个包,但它坚持 SI 系统。可怕的部分是它如何为任意数量的不同测量类型创建一种 SQL 数据类型。 postgis 对几何做类似的事情,但它可以被限制。 dimensional and unit analysis in SQL database 有一些关于该主题的其他讨论。 GNU units 在尝试翻译许多单位方面做得很好,并且在展示它的复杂程度方面做得更好(例如,大约有 20 盎司不同)。那么,将米转换为“英制”时,是指英尺、弗隆还是螺丝规?当然,当我们从 SQL 请求数据时,它通常是为了进一步处理,所以我们想要一个一致可解析的数据类型。很少有系统使用 SQL 直接生成表示格式。

    【讨论】:

    • 找到了一种使用 postgresql-unit 在维度上约束列的简单方法:constraint islength check ( dimension(data) = meter(1) ) 工作。我怀疑还有更简洁的选择。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-30
    • 2010-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-20
    • 2017-02-10
    相关资源
    最近更新 更多