我使用powershell运行SQL查询并导出到csv文件。过程效果很好,但它在我的一个列中删除了前导0。 SQL Server中的字段类型是一个varchar(不幸的是,它不是一个改变它的选项),这是我的语法。是否可以继续使用我的powershell导出过程并保持前导零?
{{1}}
编辑--- 经过进一步检查,并在原始编辑器(如记事本++)中打开我的CSV文件时,前导零是他们的!当您尝试在Excel中查看文件时,它们才会被删除。所以Excel就是罪魁祸首。
答案 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