这按预期工作:
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 3.45.1:
sqlite> select printf('%,.2f', 12345.6789);
12,345.68
注意使用单引号而不是双引号 - SQL 中的单引号表示字符串,双引号用于表名和列名等标识符。旧版本的 SQLite 也接受它们作为字符串,但最近的版本默认在命令行 shell 中禁用它,因此您的版本会生成错误。
扩展了内置 printf() 函数,因此除了整数转换之外,逗号选项现在还可用于浮点转换。
所以您只是使用了太旧的版本来支持该特定组合。