保持出口领先零

时间:2015-07-02 15:27:42

标签: powershell-v4.0

我使用powershell运行SQL查询并导出到csv文件。过程效果很好,但它在我的一个列中删除了前导0。 SQL Server中的字段类型是一个varchar(不幸的是,它不是一个改变它的选项),这是我的语法。是否可以继续使用我的powershell导出过程并保持前导零?

{{1}}

编辑--- 经过进一步检查,并在原始编辑器(如记事本++)中打开我的CSV文件时,前导零是他们的!当您尝试在Excel中查看文件时,它们才会被删除。所以Excel就是罪魁祸首。

2 个答案:

答案 0 :(得分:1)

我从未见过sql从varchar中删除任何数据。你是如何测试的?也许问题不在sql中,而在于你用来查看数据的任何问题。

我知道Excel会删除前导0,因为它试图变聪明并将字符转换为数字,但sql没有。

尝试查看$DataSet.GetXml()的结果,以便更清楚地显示原始数据。

$connection.Close()

$DataSet.GetXml()

更新:Excel删除了前导0并让您感到困惑。 sql数据是正确的。

如何在excel中打开csv文件时指定格式

http://www.upenn.edu/computing/da/bo/webi/qna/iv_csvLeadingZeros.html

通常我会从数据中创建一个xml / html文件。 Excel将打开它并使用控制格式化的数据支持各种属性,但它很混乱。

答案 1 :(得分:1)

您应该可以执行以下操作:

$a = "1000"
$a = $a.substring($a.length - 3, 37)

参考。 - https://technet.microsoft.com/en-us/library/ee176945.aspx