gpt4 book ai didi

mysql - 尝试将格式不一致的价格字符串转换为美分

转载 作者:行者123 更新时间:2023-11-29 05:08:15 25 4
gpt4 key购买 nike

我正在将数据从一个数据库迁移到另一个数据库,并且正在编写适当的脚本。我想从头开始,修复以前应用程序允许的许多不一致的格式,特别是价格,以下都是当前存储在以前数据库中的价格示例:

-100.00
700.00
0.01
3,200.00
3200
1,750.5
0
500/hour

我想把所有东西都换算成美分,所以上面的代码是:

-10000
70000
1
320000
320000
175050
0
50000

当 FORMAT(price, 2) * 100 似乎适用于其中很多,包括 (!) 500/小时时,我充满希望:

select format('500/hour', 2) * 100;
-> 50000

但出于某种原因,我得到了 3200.00 的奇怪结果:

select format('3200.00', 2) * 100;
-> 300

在撰写本文时,它似乎不适用于任何超过 1,000 的数字字符串,我猜这与逗号的存在/缺失有关。有什么智能方法可以将上述示例解析为美分吗?如果它足够简单,我很乐意将它合并到选择查询中,但用户定义的函数也可以。

最佳答案

你可以先去掉这句话的逗号:

replace(data,',','')

这可能是因为您使用的是 varchar 类型而不是 int 类型。如果你这样做了

select cast(replace('3,200.00',',','') as signed) * 100

它应该工作

关于mysql - 尝试将格式不一致的价格字符串转换为美分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44393979/

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