使用MS SQL ODBC插入时出现语法错误

2024-09-27 07:22:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图从pyodbc的python程序中使用microsoftobc11sql驱动程序将其插入到microsoftsqlserver数据库中。(那是一口) 因此,我在单独的查询中测试了connect、子查询和使用dateadd。这些都可以,但是当我试图把它们放在insert语句中时,在倒数第二行的倒数第二“)”处出现语法错误。我错过了什么?在

cursor.execute("INSERT INTO room_use_log VALUES ("+
       "(SELECT bldg_flr_spc_id FROM bldg_flr_spc WHERE rm_atl_nbr="+
         rooms[y]["Name"] +"),'t','f',dateadd(ms,"+
         str(int(str(r.get(rooms[y]["Name"]))[1:])) +", '1970-01-01'),"+
         " dateadd(ms,"+
         str(int(time.time())) +
         ", '1970-01-01')" #<----that one
        )

这是整个错误:

^{pr2}$

Tags: name程序timemsintpyodbcstr倒数
1条回答
网友
1楼 · 发布于 2024-09-27 07:22:22

似乎您在INSERT语句中缺少右括号。字符串中的最后一个paren是closing dateadd,您仍然需要另一个来关闭VALUES部分。尝试:

cursor.execute("INSERT INTO room_use_log VALUES ("+
   "(SELECT bldg_flr_spc_id FROM bldg_flr_spc WHERE rm_atl_nbr='"+
     rooms[y]["Name"] +"'),'t','f',dateadd(ms,"+
     str(int(str(r.get(rooms[y]["Name"]))[1:])) +", '1970-01-01'),"+
     " dateadd(ms,"+
     str(int(time.time())) +
     ", '1970-01-01'))" #<  that one
    )

编辑:添加了下面注释中提到的单引号,以修复该语句。在

相关问题 更多 >

    热门问题