在 SQL 中存储时间

csi*_*csi 3 sql time database-performance

在 SQL 中存储时间的正确方法是什么?

有一个只在发生动作时才关心的领域。示例值将是 2:30 PM 或 14:30,这对我来说无关紧要。这个值永远不会 (ha, ha) 被添加、减去、比较等。它只是一个静态属性。

Ben*_*row 6

如果您使用的是 Microsoft SQL Server 或 MySQL(我相信其他人也会支持这一点,但我知道只有这两个),它们都包含用于存储时间值的专用数据类型。

我总是建议存储之类的日期和时间在他们的专用格式(DATETIMEDATETIME等),因为这时如果你需要查询的值或以其他方式操纵它们,这使得编写SQL更容易,因为SQL引擎知道什么样的数据是在现场。VARCHAR例如,如果您将日期或时间存储在 a中,则您可能会或可能不会(取决于数据库引擎)编写一个查询,该查询指定SomeDateTimeField >= '2011-01-01 09:00:00' AND SomeDateTimeField <= '2011-01-01 17:00:00'而不会引起呕吐,例如。

作为参考,TIME此处提供了 SQL Server 和 MySQL数据类型信息。