mysql表中的时间列

Posted

技术标签:

【中文标题】mysql表中的时间列【英文标题】:Time column in mysql table 【发布时间】:2014-04-25 21:41:07 【问题描述】:

我想在mysql表中存储一个时间值,

1345:55

现在是 1345 小时 55 分钟。列应该有什么类型?

如果我想使用 mysqldb 模块将时间变量从 python 传递到此列,我应该在 python 中使用哪种时间类型? datetime.timedelta?

【问题讨论】:

你需要支持什么范围的值? 您需要什么级别的粒度?分钟?秒?毫秒?微秒? 分钟就足够了。 【参考方案1】:

一般来说,可以使用 MySQL 的 TIME 数据类型来存储时间值:

MySQL 以'HH:MM:SS' 格式检索和显示TIME 值(或用于大小时值的'HHH:MM:SS' 格式)。 TIME 值的范围可以从 '-838:59:59''838:59:59'

显然,在您的情况下,这不足以满足所需的值范围。因此,我建议您将该值转换为整数分钟数并将结果存储在 4 字节 INT UNSIGNED 列中(能够存储 0 到 4294967295 范围内的值,表示 0:00 到 71582788:15) .

【讨论】:

谢谢,如果“843:45”(843 小时 45 分钟)写入该字段时,我应该使用哪种 python 数据类型? @alwbtc:我对 Python 了解不多,但 timedelta 看起来很有前途。

以上是关于mysql表中的时间列的主要内容,如果未能解决你的问题,请参考以下文章

如何加密 MySQL 表中的特定列?

如何使用不相关表中的列数据更新列 - MySQL

需要帮助来订购我的 MySQL 表中的时间和日期列

如何使用列号从 MySQL 中的表中删除列

从 MySQL 中的时间戳排序表中按列选择第一个和最后一个匹配项

如何从 MySQL 中的表中删除列