Python:如何从datetime.timedelta对象中获取时间?

Sam*_*Sam 22 python mysql timedelta

mysql数据库表有一个数据类型为time的列(http://dev.mysql.com/doc/refman/5.0/en/time.html).访问表数据时,Python将此列的值作为datetime.timedelta对象返回.如何从中抽出时间?(我真的不明白pydel手册中的timedelta是什么).

例如,表中的列包含值"18:00:00"Python-MySQLdb将其返回为datetime.timedelta(0,64800)


请忽略下面的内容(它会返回不同的值) -

补充:无论表中的时间值如何,python-MySQLdb似乎只返回datetime.timedelta(0,64800).

注意:我使用Python 2.4

Ric*_*and 40

奇怪的是,Python将值返回为datetime.timedelta.它可能应该返回一个datetime.time.无论如何,看起来它正在返回自午夜起经过的时间(假设表中的列是下午6:00).要转换为a datetime.time,您可以执行以下操作::

value = datetime.timedelta(0, 64800)
(datetime.datetime.min + value).time()
Run Code Online (Sandbox Code Playgroud)

datetime.datetime.mindatetime.time()正在当然,记录为部分日期时间,如果你想了解更多信息模块.

datetime.timedelta是,顺便说一下,两者之间的差别的表示datetime.datetime值.所以,如果你datetime.datetime从另一个中减去一个,你就会得到一个datetime.timedelta.如果你加datetime.datetimedatetime.timedelta,你会得到一个datetime.datetime.这就是上面代码的工作原理.

  • 我应该提一下,我的第一次尝试是使用`datetime.time.min + value`,但这不起作用,因为`datetime.time`对象不能添加到`datetime.timedelta`对象. (3认同)
  • 小警告:如果“值”是负数,这将不起作用,因为您不能添加小于 datetime.min (2认同)