python - 使用 BCP 将 CSV 文件导入 SQL Server 表时如何格式化日期字段?
问题描述
我正在使用 BCP 和 python 将.CSV
文件导入 SQL Server 表。该.CSV
文件有一个包含日期时间数据的列,我的表也有一个相应的 datetime2 列。问题是.CSV
文件中的日期格式为:
2017-01-13T06:02:14Z
在运行 BCP 命令时会引发错误。我的 BCP 命令如下所示:
bcp mydb.dbo.mytable in {0} -R -e errorfile -c -S mysqlserver.com -U myuser -P 'mypassword'
错误是:
转换规范的字符值无效@# 2017-01-13T06:02:14Z
如果我将.CSV
文件中的日期更改为“2017-01-13 12:33:49”,BCP 工作正常。该错误是因为 BCP 工具使用 ODBC 批量复制 API。因此,要将日期值导入 SQL Server,bcp 使用 ODBC 日期格式 (yyyy-mm-dd hh:mm:ss[.f...])。
解决此问题的方法是什么?
有没有办法将 CSV 文件本身的日期格式从 2017-01-13T06:02:14Z 更改为 yyyy-mm-dd hh:mm:ss?
解决方案
一种选择是将作为 varchar 导入临时表。进入临时表后,您可以直接转换为 datetime2 并填充 mytable
推荐阅读
- angular - 部署后未显示数据表 [Netlify]
- date - 使用 SQLLoader 将数据字段的 $ char 替换为零
- search - 如何检查邮件中的哪个附件与搜索匹配
- wordpress - 结帐字段自定义标签不起作用
- java - 打印指定文件练习 Java
- javascript - 使用 HTML CSS JS 以百分比管理装运进度条
- asp.net-core - ASP.NET Core 标识表 AspNetUsers
- javascript - 在其中定义变量的 Jest 测试函数
- shell - 似乎无法逃脱 shell 脚本中的空格
- python - 如何在 Python 中解压 .rar 文件?