如何使用python pyodbc模块更新MSSQL中的datetime字段

时间:2016-01-21 04:36:37

标签: python sql-server datetime pyodbc

我正在尝试使用convert(datetime,'19-01-16 11:34:09 PM',5)更新数据库表,但是当我将其作为字符串传递到数据库表时,我收到了数据类型转换错误。

  

从字符串转换日期和/或时间时转换失败。

insert into Run (RunID, StartDate) 
values ('19012016',"convert(datetime,'19-01-16 11:34:09 PM',5)")

2 个答案:

答案 0 :(得分:1)

您收到错误是因为您正在将其视为字符串值。代替:

div.pointer {
    animation: pointer 3s;
}

@keyframes pointer {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(-30deg);
    }
}

也就是说,你的报价太多了。在Python中,这通常写成:

insert into Run(RunID, StartDate) 
    values ('19012016', convert(datetime, '19-01-16 11:34:09 PM', 5))

如果要插入值:

"""insert into Run(RunID, StartDate) 
    values ('19012016', convert(datetime, '19-01-16 11:34:09 PM', 5))"""

如果您可以选择日期表示,我建议您使用更常见的格式,例如YYYY-MM-DD HH:MM:SS。

答案 1 :(得分:0)

使用T-SQL将字符串值转换为日期时间值可能容易出错,尤其是在您必须考虑不同的语言环境和时区时。

不使用T-SQL进行转换,而是使用parameters与原始Python datetime值。 Python提供的datetime parsing and formatting比T-SQL更具灵活性。

有关在pyodbc参数中使用Python日期时间值的示例,请参阅我的答案here