首页 > 解决方案 > SQL Server 的 sqlcmd 删除小数点左侧的零

问题描述

我们正在尝试从 SQL Server 表中读取数据,以便将其插入到Linux 操作系统中的.csv使用中。sqlcmd

不幸的是,当我们尝试从表中读取浮点值时

-0.373783

然后在我们得到的文件中

-.373783

但我们想在数据库表上获得文件-0.373783 。

我们不明白为什么 sqlcmd 删除前导零,我的意思是小数点左侧,SSMS 上的相同选择查询返回正确的数字表示。

我们尝试使用以下语句

SELECT CAST(floatField AS Numeric(9,6))

但是我们不断得到小数点前没有零的数字..我们快疯了!

提前感谢您的建议

标签: sql-serverformatexport-to-csvsqlcmdleading-zero

解决方案


请尝试以下方法。

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];

推荐阅读