在我看来,MySQL 中的 TIME 类型旨在表示时间间隔,就像 Python 中的 datetime.timedelta 一样。从您引用的文档中:
TIME 值的范围可以从“-838:59:59”到“838:59:59”。小时部分可能会很大,因为 TIME 类型不仅可以用于表示一天中的某个时间(必须小于 24 小时),还可以用于表示经过的时间或两个事件之间的时间间隔(可能远大于24 小时,甚至是负数)。
从 datetime.timedelta 转换为 datetime.time 的替代方法是将列类型更改为 DATETIME 并且不使用日期字段。
-插入:
tIn = datetime.datetime(
year=datetime.MINYEAR,
month=1,
day=1,
hour=10,
minute=52,
second=10
)
cursor.execute('INSERT INTO TableName (TimeColumn) VALUES (%s)', [tIn])
-选择:
cursor.execute('SELECT TimeColumn FROM TableName')
result = cursor.fetchone()
if result is not None:
tOut = result[0].time()
print 'Selected time: {0}:{1}:{2}'.format(tOut.hour, tOut.minute, tOut.second)
在 datetime 对象上调用 datetime.time() 以获取时间对象。