无法从Python将DateTime插入SQL Server

问题描述 投票:0回答:1

我似乎无法使用Python将DateTime插入SQL Server

这是我的代码:

def execute_query_commit(connection, query):
    cursor = connection.cursor()
    try:
        cursor.execute(query)
        connection.commit()
        print("Query executed and committed")
    except pyodbc.Error as e:
        print(f"The error '{e}' occurred")

email = input("Email: ")
credcard = int(input("Enter number:"))
now = datetime.now()

query = f''' \
    insert into testing1 (email, credcard, transactiondetails)
    values ({email},{credcard},{now})'''

conn = create_connection()
execute_query_commit(conn,query)

SQL Server中transactiondetails列的数据类型是DateTime。

如果我对值进行硬编码:'2020-06-03 18:09:23'-可以。

但是,如果我使用{now},则错误发生在18

The error '('42000', "[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near '18'. (102) (SQLExecDirectW)")' occurred

有人对如何解决这个问题有任何想法吗?

python sql-server pyodbc
1个回答
0
投票

如果要传递python datetime.now(),则需要格式化字符串

f = '%Y-%m-%d %H:%M:%S'
now.strftime(f)

但是我建议参数化SQL

© www.soinside.com 2019 - 2024. All rights reserved.