我需要将当前日期和时间插入SQL Server。 我尝试了以下方法,但是没有用。
insertstatement = "insert into tablename(sqldate) values (?)"
values = ('getutcdate()')
cursor.execute(insertstatement , values)
cnxn.commit()
我遇到以下错误:
[Microsoft] [SQL Server Native Client 11.0] [SQL Server]从字符串转换日期和/或时间时转换失败。 (241)(SQLExecDirectW)')
我只需要使用SQL Server时间是因为代码是在不同的服务器和时区上执行的,并且需要使用精确到毫秒的标准时间。
答案 0 :(得分:1)
当您尝试插入SQL日期时间时,应该在SQL Server上获取时间,因此您的代码应如下所示
insertstatement = "insert into tablename(sqldate) values (getutcdate())"
cur.execute(insertstatement)
cnxn.commit()
尝试使用GETUTCDATE()
功能。让我举个例子:
insert into tablename(sqldate) values (GETUTCDATE())
此外,表格列的类型应为DateTime
。例如:
DECLARE @FooTable TABLE
(
StartDate DateTime
)
INSERT INTO @FooTable
(
StartDate,
)
VALUES
(
GETUTCDATE(),
)
SELECT StartDate FROM @FooTable
MSDN has a great description about GETUTCDATE() and possible use cases.