gpt4 book ai didi

sql - 如何从价格栏中删除货币符号?

转载 作者:行者123 更新时间:2023-11-29 13:57:33 26 4
gpt4 key购买 nike

我有一个价格列,它是字符串并且包含来自世界各地的产品的价格,现在当我尝试执行诸如求和之类的任何操作时,我遇到了错误。所以我的问题是如何从所有国家/地区的价格列中删除货币符号?

这是我的示例输入:-

locale   price 
cs_CZ 2462475,38 K
da_DK kr 591.872,50
de_AT 267,70
de_CH CHF 1'998.99
de_DE 1.798,09
en_AE AED7,236.20
en_AU $1,699.00
en_BD Tk999,999.00
en_HK HK$6,188.00
en_HU Ft344,524,655.48
tr_TR 2.344.697,66 TL

最佳答案

Postgres 将大部分区域设置卸载到操作系统。因此,Postgres 货币转换例程仅在操作系统理解语言环境名称且您的价格字符串与其预期格式匹配时才适用。

例如,Windows 不会接受 da_DK 作为语言环境,即使接受了,它也不会像预期的那样接受字符串 kr 591.872,50丹麦货币符号为 kr. 而不是 kr

也就是说,我认为这在基于 Linux 的服务器上应该运行良好:

CREATE FUNCTION convert_currency(amount TEXT, locale TEXT) RETURNS NUMERIC AS
$$
BEGIN
PERFORM set_config('lc_monetary', locale || '.UTF-8', True);
RETURN amount::MONEY::NUMERIC;
END
$$
LANGUAGE plpgsql
SET lc_monetary TO DEFAULT;

关于sql - 如何从价格栏中删除货币符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28556099/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com