在SQL中存储一天中时间的正确方法是什么?
有一个只关心某一行动发生的领域。示例值将是下午2:30或14:30,这对我来说并不重要。这个值永远不会被加、减、比较等。它只是一个静态属性。
发布于 2011-06-02 17:48:15
如果您正在使用或MySQL (我相信其他人也会支持这一点,但这是我所知道的唯一明确的2),它们都包含用于存储时间值的专用数据类型。
我总是建议以它们的专用格式(DATE、TIME、DATETIME等)存储日期和时间,因为如果您需要查询值或以其他方式操作它们,那么编写SQL就更容易了,因为otherwise知道字段中的数据类型。例如,如果您将日期或时间存储在VARCHAR中,您可能(或不可能)(数据库引擎依赖者)能够编写指定SomeDateTimeField >= '2011-01-01 09:00:00' AND SomeDateTimeField <= '2011-01-01 17:00:00'的查询,而不必呕吐。
这里提供Server和MySQL TIME数据类型信息,以供参考。
发布于 2011-06-02 17:58:21
有许多选择-三大选择是:
INTEGER存储Unix time_t值(自01/01/1970以来的秒数) (如果使用此路径,请确保至少使用64位整数)。TIME、DATETIME、TIMESTAMP等)-每个DB服务器可用类型的列表不同)VARCHAR字段 (不要这样做)。你的“永不”会变成“好吧,就这一次.”)最“正确”的方法是为SQL实现使用日期和时间类型--这通常允许您使用内置日期比较和格式设置命令。
关闭的秒是整数/time_t值,因为有用于转换和处理日期表示的定义良好的函数。
https://serverfault.com/questions/276378
复制相似问题