sql-server - 无法在sql表中插入日期
问题描述
使用 python pyodbc 我试图在表中插入日期和时间,但得到
" ('22007', u'[22007] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]从字符串转换日期和/或时间时转换失败。(241) (SQLExecDirectW)') "
插入查询:
cursor.executemany("""INSERT INTO DM (SI, DK, Total, CR, CCM, SDate, EDate)
VALUES (?, ?, ?, ?, ?, ?, convert(datetime, ?, 121))""",dms)
尝试了以下格式来插入日期和时间:
20190201 01:14:54.862963
20190201T01:14:54.862963
请注意,仅使用 20190201 的日期插入时,我能够插入,但只有日期和时间面临问题,也很累以下查询。使用此查询能够插入日期
cursor.executemany("""INSERT INTO DM (SI, DK, Total, CR, CCM, SDate, EDate)
VALUES (?, ?, ?, ?, ?, ?,?)""",dms)
解决方案
这些格式无效,无法自动转换为日期时间。
20190201 01:14:54.862963
20190201T01:14:54.862963
您可以插入以下格式:
insert into test values (1,2,convert(datetime,'20190201 01:14:54.862',121))
否则,如果您的数据采用显示的格式,您可以通过删除最后 3 位来执行以下解决方法。
insert into test values (1,2,convert(datetime,substring('20190201 01:14:54.862963',1,len('20190201 01:14:54.862963')-3),121))
希望这会帮助你。
推荐阅读
- testing - 与 Gigya SSO 的 TestCafe 相关的问题
- spring - Jetty 9 出于安全原因不想显示 Stacktraces
- python - 在 Python 中将数据框转换为字典
- java - 字符串数组的 Filer 内容 (Java)
- json - Flutter中解析Json列表
- redis - 在命令行中使用 redis 变量(时间)
- kubernetes - github 操作 GKE 工作流 - 部署说明
- python - 用 pytest 模拟 Tornado parse_command_line
- javascript - 调整画布大小但大小固定(不改变大小)
- python - gekko 错误:矩阵在结构上是奇异的。怎么解决呢?