如何将全长日期与时间转换为日期?

时间:2017-03-11 11:37:15

标签: python python-3.x sqlite

我有一个日期,当用户点击日历小部件中的特定日期时,会检索该日期。 例如,如果用户要按3月29日程序输出:

2017-03-29 00:00:00

我想要的时候

2017-03-29

如何修复它以便我可以将它与SQLite一起使用(与第二个示例相同)。

    def datefunction(self,agro):
        print(agro)
        timeslot = cursor.execute('''SELECT * FROM dates WHERE Date = (?)''',(agro,))
        print('''SELECT * FROM dates WHERE Date = (?)''',(agro,))
        list1 = list(cursor.fetchall())
        print(list1)
        if list1== ([]):
            print("You have nothing on today.")

    def _show_selection(self, text, bbox):
        """Configure canvas for a new selection."""
        agro = self.selection
        print(self.selection, self.datefunction(agro))
        print(agro)

结果我从代码中得到:

SELECT * FROM dates WHERE Date = (?) (datetime.datetime(2017, 3, 29, 0, 0),)

1 个答案:

答案 0 :(得分:0)

编辑:

您可以只显式请求SQL查询中的日期部分

SELECT * FROM dates WHERE Date = date(?)

此处,date函数会自动从输入中提取相应的日期。

或@Shuo建议,使用

预先格式化日期
agro.strftime('%Y-%m-%d')

并将其提供给查询:

dstr = agro.strftime('%Y-%m-%d')
timeslot = cursor.execute('''SELECT * FROM dates WHERE Date = (?)''',(dstr,))