当前位置: 代码迷 >> python >> 在MySQL中转换SE??LECT的返回值
  详细解决方案

在MySQL中转换SE??LECT的返回值

热度:98   发布时间:2023-06-21 11:01:05.0

我是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对象(在python中),并且我无法比较这两个值。 我将如何让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来代替, SELECT time FROM check_times WHERE fullname=%s得到一个元组,其元数据的datetime.datetime对象存储在数据库中。

我不确定我可以用谷歌搜索什么术语,因为我尝试的一切都不会返回有用的信息。

谢谢

我发现我要去哪里错了。 在开发代码以更新行时,我无意间使它插入了2018的Unix时间戳。 问题中的代码正常运行,并且正在返回该值-我被抛弃了,因为我期望返回更大的数字。 我清除表并再次运行插入代码后才发现。 我猜想深夜编程的危险。

  相关解决方案