【问题标题】:Insert query with gettime() into SQL Server table using Python使用 Python 将带有 gettime() 的查询插入 SQL Server 表
【发布时间】:2020-04-10 08:47:52
【问题描述】:

我在将以下 SQL 查询放入 Python 时遇到问题:

insert into GERVERSION values (10, 'xxxxxxxx', 7, 4, 2, getdate(),'')

请注意,在 SQL 中,我有 getdate() 部分的时间戳

谁能帮我用正确的语法来把它付诸实践?

【问题讨论】:

  • 真的在 SQL Server 中有数据类型为 TIMESTAMP 的列吗?那是不是在 SQL Server 中保存日期和时间信息的列;它已重命名为ROWVERSION,因为它确实是系统内部的行的二进制版本号——它与日期和时间无关。改用DATETIME2(n) 处理日期和时间
  • 请发布 DDL (CREATE TABLE ...)
  • getdate() 它将给出时间戳值。请检查您是否插入正确的列
  • 另外:您有什么问题吗?您是否收到错误消息 - 如果是,what 错误?
  • ...@marc_s,虽然文档说明timestamp is the synonym for the rowversion data type,但反过来说,rowversion是timestamp的同义词。数据类型仍然是timestamp:create table a(col rowversion);exec sp_help 'a';drop table a;...@ 987654328@

标签: sql sql-server python-3.x datetime python-datetime


【解决方案1】:

尝试使用INSERT INTO ... SELECT 语法:

INSERT INTO GERVERSION
SELECT 10, 'xxxxxxxx', 7, 4, 2, GETDATE(), '';

【讨论】:

  • Tim - 出于好奇 - 您认为使用 INSERT INTO.. SELECT 方法比使用 INSERT INTO .... VALUES 方法有什么好处?由于插入的值都是常量、变量或函数调用的结果,如GETDATE(),我真的看不出这种方法有什么好处——我错过了什么吗?
  • @marc_s 老实说,我什至不知道在VALUES 子句中可以进行函数调用。在某些数据库中,这是不允许的。
  • 好的 - 我明白你的意思了 - 但是,在 SQL Server 中,调用像 GETDATE() (或者这些天最好是 SYSDATETIME())这样的内置函数实际上可以在 VALUES() 中子句
  • @marc_s,正确。使用 getdate() 解决了它。谢谢
猜你喜欢
  • 1970-01-01
  • 2016-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-27
相关资源
最近更新 更多