sql-server - SQL Server 的 sqlcmd 删除小数点左侧的零
问题描述
我们正在尝试从 SQL Server 表中读取数据,以便将其插入到Linux 操作系统中的.csv
使用中。sqlcmd
不幸的是,当我们尝试从表中读取浮点值时
-0.373783
然后在我们得到的文件中
-.373783
但我们想在数据库表上获得文件-0.373783 。
我们不明白为什么 sqlcmd 删除前导零,我的意思是小数点左侧,SSMS 上的相同选择查询返回正确的数字表示。
我们尝试使用以下语句
SELECT CAST(floatField AS Numeric(9,6))
但是我们不断得到小数点前没有零的数字..我们快疯了!
提前感谢您的建议
解决方案
请尝试以下方法。
FORMAT()函数使用 .Net CLR 格式。'0' 和 '#' 的组合将为您提供所需的内容。
SQL
DECLARE @var DECIMAL(10,6) = -0.373783;
SELECT @var AS [Before]
, CAST(@var AS VARCHAR(12)) AS [After]
, FORMAT(@var,'###0.######') AS [Formatted];
推荐阅读
- php - 我无法通过包含语句传递变量
- mysql - Mysqld.pid 进程数与阈值不同
- javascript - 从列表中删除后如何重新渲染我的屏幕?
- java - 如何在spring boot中检查mongo数据库是否更新
- java - 如何在另一个类中设置和获取内部类的字段
- tensorflow - 将张量字典传递给 Keras 模型
- api - Azure DevOps 构建定义和管道之间有什么区别和关系?
- python - 配置:错误:找不到 Boost 标头版本 >= 1.48.0
- python - 在 y = x 之后,x 的值应该不会改变,但是为什么 x 在这个脚本中改变了呢?
- python - groupby 过滤每月余额均为负数的帐户