用户选择QDateTime,我需要在pyodbc中编写查询,该查询选择表中日期大于所选日期的项目。如何在sql datetime中转换它?以及如何编写此请求?
您可以使用以下方法将QDateTime变量(例如starttime)转换为格式化的字符串:
starttime.toString("YYYY-mm-dd");
将此传递给Python。
要将其转换为python的本地日期时间,请执行以下操作:
import datetime
starttime = datetime.datetime.strptime(data_you_got_from_QDateTime, '%Y-%m-%d')
这将为您提供一个Python datetime.datetime对象。
如果只想在SQL查询中使用QDateTime提供的数据,则可以这样做:
import pyodbc
yourdate = date_received_from_QDateTime
cn = pyodbc.connect('DRIVER={SQL Server};SERVER=SQLSRV01;DATABASE=DATABASE;UID=USER;PWD=PASSWORD')
cursor = cn.cursor()
cursor.execute("select * from yourtable where yourfield > ?", yourdate)
for row in cursor.fetchall():
print row
这应该为您提供合理的信息,以调整上面的代码以获取信息。由于我不知道您是如何向Python发送QDateTime的,因此无法对此发表评论。