【问题标题】:Error inserting ISO8601 string literal into Azure SQL DB datetimeoffset column using pyodbc使用 pyodbc 将 ISO8601 字符串文字插入 Azure SQL DB datetimeoffset 列时出错
【发布时间】:2017-09-21 01:01:48
【问题描述】:

我正在尝试(实际上失败)使用 pyodbc 将字符串文字 ISO 8601 timestamp 插入到类型为 datetimeoffset(3). 的 Azure SQL 数据库表列中

cursor.execute(
    'INSERT INTO AP_TEST (Id, t_zulu) VALUES (?, ?)',
    '1234',
    '2017-08-04T17:03:37.266Z'
)

这是一个例外:

pyodbc.DataError: ('22007', '[22007] [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]从字符串转换日期和/或时间时转换失败。(241) (SQLExecDirectW) ')

我在这里错过了什么?

干杯

【问题讨论】:

    标签: azure-sql-database pyodbc iso8601


    【解决方案1】:

    SQL Server 对datetimeoffset,AFAIK 采用不同的格式。试试:

    '2017-09-20 20:32:10 +10:0'
    

    在此处查看文档和示例:https://docs.microsoft.com/en-us/sql/t-sql/data-types/datetimeoffset-transact-sql

    祝你好运!

    【讨论】:

      猜你喜欢
      • 2016-10-18
      • 2018-10-21
      • 1970-01-01
      • 2013-06-22
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多