sqlite3 在本机命令行上将“12345.6789”格式为“12,345.68”

问题描述 投票:0回答:1

这按预期工作:

select printf("%f", 12345.6789); 12345.678900

这按预期工作:

select printf("%.2f", 12345.6789); 12345.68

这按预期工作(注意逗号):

select printf("%,d", 12345.6789); 12,345

我的逗号在哪里?

select printf("%,.2f", 12345.6789); 12345.68

尝试将“12345.6789”输出为“12,345.68”而不求助 到 Python 脚本。理想情况下,我想在 原生 sqlite 命令行。

Python 脚本很简单,但我只是想了解为什么 逗号只能间歇性地起作用。


在 Ubuntu 机器上使用 sqlite3 版本 3.37.2。几天的寻找 一个答案,我已经干了。 ChatGPT 也让我失败了!

sqlite format number-formatting
1个回答
0
投票

它适用于 Sqlite 3.45.1:

sqlite> select printf('%,.2f', 12345.6789);
12,345.68

注意使用单引号而不是双引号 - SQL 中的单引号表示字符串,双引号用于表名和列名等标识符。旧版本的 SQLite 也接受它们作为字符串,但最近的版本默认在命令行 shell 中禁用它,因此您的版本会生成错误。

查看变更日志,我找到了3.42.0的条目:

扩展了内置 printf() 函数,因此除了整数转换之外,逗号选项现在还可用于浮点转换。

所以您只是使用了太旧的版本来支持该特定组合。

© www.soinside.com 2019 - 2024. All rights reserved.