【问题标题】:how to get user input from qdateEdit and select it from database in postgres如何从 qdateEdit 获取用户输入并从 postgres 的数据库中选择它
【发布时间】:2021-04-14 20:08:52
【问题描述】:

我想知道如何在 QDateEdit 中获取用户输入并在 postgres 的表格中选择它?这是我的代码

 def date(self):

        try:
            date = self.dateEdit.date()
            print(date)
            conn = psycopg2.connect(dbname="sample", user="postgres", password="admin", host="localhost", port="5432")
            cur = conn.cursor()
            cur.execute("SELECT * FROM data WHERE stdate = '%s'",date)
            result = cur.fetchall()
            self.tableWidget.setRowCount(0)
            for row_number, row_data in enumerate(result):
                self.tableWidget.insertRow(row_number)
                for column_number, data in enumerate(row_data):
                    self.tableWidget.setItem(row_number, column_number, QTableWidgetItem(str(data)))
        except Exception as e:
            print("Error")

这部分有问题

cur.execute("SELECT * FROM data WHERE stdate = '%s'",date)

如何从 QDateEdit 获取日期并在 postgres 的表格中选择它?

我只想选择标准日期等于用户在 QDateEdit 中输入的日期的行,并在我单击选择数据按钮时将其显示在 QtableView 中

【问题讨论】:

    标签: python postgresql pyqt5 psycopg2


    【解决方案1】:

    你必须:

    • 使用 datetime.time() 而不是 QDate。
    • 占位符不带引号。
    dt = self.dateEdit.date().toPyDate()
    cur.execute("SELECT * FROM data WHERE stdate = %s", (dt,))
    

    【讨论】:

    • datetime.time() 是什么意思?那是一个小部件吗?
    • 我试了代码但没有运行sql查询,表上没有显示值,我需要导入一些东西来使用日期时间吗?
    • 它打印了“错误”,try 块没有运行所以它去了 except
    猜你喜欢
    • 1970-01-01
    • 2015-10-19
    • 1970-01-01
    • 2011-09-03
    • 2019-09-26
    • 1970-01-01
    • 2023-03-12
    • 2019-09-12
    相关资源
    最近更新 更多