SQL Server中插入语句中的GetUtcDate

时间:2018-11-24 17:44:24

标签: sql sql-server

我需要将当前日期和时间插入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时间是因为代码是在不同的服务器和时区上执行的,并且需要使用精确到毫秒的标准时间。

1 个答案:

答案 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.