mysql数据库表有一个数据类型为time(http://dev.mysql.com/doc/refman/5.0/en/time.html)的列。访问表数据时,Python将此列的值作为datetime.timedelta对象返回。我如何从中抽出时间?(我并没有真正理解python手册中timedelta的用途)。
例如,表中的列包含值“18:00:00” Python MySQLdb将其返回为datetime.timedelta(0,64800)
请忽略下面的内容(它确实返回不同的值)-
添加:不管表中的时间值是多少,python MySQLdb似乎只返回datetime.timedelta(064800)。
注意:我使用Python2.4
奇怪的是Python返回的值是
datetime.timedelta
。它可能应该返回一个datetime.time
。无论如何,它看起来像是返回自午夜以来经过的时间(假设表中的列是下午6:00)。要转换为datetime.time
,可以执行以下操作:如果您需要更多信息,那么
datetime.datetime.min
和datetime.time()
当然是datetime模块的一部分。顺便说一下,A
datetime.timedelta
是两个datetime.datetime
值之间差异的表示。所以如果你从另一个中减去一个datetime.datetime
,你将得到一个datetime.timedelta
。如果你用datetime.timedelta
加上datetime.datetime
,你会得到datetime.datetime
。上面的代码就是这样工作的。在我看来,MySQL中的TIME类型旨在表示时间间隔,就像Python中的datetime.timedelta那样。从您引用的文档中:
从date time.timedelta转换为datetime.time的另一种方法是将列类型更改为datetime,而不使用日期字段。
-插入:
-选择:
对datetime对象调用datetime.time()以获取时间对象。
相关问题 更多 >
编程相关推荐