我是mysql的新手,所以我不确定我是不是想错了,但是我有一个类型为的数据库列 DATETIME
. 我使用以下语句填充此数据:
INSERT INTO check_times (fullname, time) VALUES (%s, FROM_UNIXTIME(%s)) ON DUPLICATE KEY UPDATE time=FROM_UNIXTIME(%s)
``` `fullname` 是唯一的字符串,我要么添加新行,要么更新时间值(如果它已经存在)。我拥有的时间戳是unix时间戳,但我将它作为 `DATETIME` 这样我在查看数据时可以很容易地看到日期。
我的问题是,在我的应用程序中,我需要将应用程序中的时间戳(unix时间戳)与数据库中的值进行比较。当我在数据库中得到值时,我收到一个 `datetime` 对象,我无法比较这两个值。如何让mysql转换返回的 `datetime` 值返回到unix时间戳,以便轻松转换?
我想可能是这样的:
SELECT UNIX_TIMESTAMP(time) FROM check_times WHERE fullname=%s
基于此页面,但不起作用。使用下面的python代码,我得到一个包含 `(2018, )` ```
cursor = self.connection.cursor()
cursor.execute("SELECT UNIX_TIMESTAMP(time) FROM check_times WHERE fullname=%s", (fullname,))
time = cursor.fetchone()
cursor.close()
如果我运行上面的代码 SELECT time FROM check_times WHERE fullname=%s
相反,我得到了一个元组 datetime.datetime
对象存储在数据库中的日期。
我不知道我可以用谷歌搜索哪些术语,因为我尝试的每件事都不会返回有用的信息。
谢谢
1条答案
按热度按时间fnx2tebb1#
我已经找到了我错的地方。在开发代码来更新一行时,我不小心做了这样的代码,它插入了的unix时间戳
2018
. 问题中的代码运行正常,它返回这个值-我被抛出是因为我期望返回一个更大的数字。我在清除表并再次运行插入代码后发现了这个问题。我猜是深夜编程的危险。