PyODBC, cursor.execute() won't insert parameters into SQL String

前端 未结 1 449
名媛妹妹
名媛妹妹 2021-01-16 22:18

I am using pypyodbc to insert data into a database and when I use the cursor.execute() command I try to put the sql string and the parameters, but I get the following error:

相关标签:
1条回答
  • 2021-01-16 22:42

    Use datetime.strptime() to convert the attack_datetime value to a datetime object before passing the value to SQL Server.

    For example, passing a datetime formatted string fails with the same error message you receive

    ...
    # assumes connection and cursor objects initialized
    create_date_str = "2016-06-16T01:23:45.67890"
    sql = "select name, create_date from sys.databases where create_date = ?"
    rows = cursor.execute(sql, create_date_str).fetchall()
    

    Raises

    Traceback (most recent call last): File "", line 1, in pyodbc.DataError: ('22007', '[22007] [Microsoft][SQL Server Native Client 11.0][SQL Server]Conversion failed when converting date and/or time from character string. (241) (SQLExecDirectW)')

    While converting the datetime string to a datetime object succeeds

    ...
    # convert datetime string to object, specifying input format
    create_date = datetime.datetime.strptime(create_date_str, '%Y-%m-%dT%H:%M:%S.%f')
    rows = cursor.execute(sql, create_date).fetchall()
    
    0 讨论(0)
提交回复
热议问题