sql-server – 在SQL Server数据库中存储时间间隔的最佳方法是什么?

我有一个表,我想跟踪时间,所以有效的条目可能是:

> 1小时3分钟
> 47分钟
> 10小时
> 3分14秒

什么字段类型最适合用于此.我显然可以使用varchar.但是我认为可能会有更好的东西,因为我想运行查询以总计多个记录的时间量.

最佳答案
不要使用字符类型来存储日期/时间信息.

在SQL Server 2008中,您有时间类型,如果您的时间间隔小于1天,则应该使用该类型.在以前的版本中,或者如果需要存储更大的间隔时间,则必须使用datetime或smalldatetime(取决于所需的精度).

另一个选择是选择一个时间单位 – 比如说分钟 – 只需使用一个int值来表示单位数.只需确保(a)您选择的单位实际上足够精确,可记录您需要跟踪的最小间隔,(b)实际的数字类型足够大以容纳您需要跟踪的最大间隔.一小时可能足以跟踪一天内的分钟数;另一方面,跟踪十年内的毫秒数将不得不将其存储为bigint.

转载注明原文:sql-server – 在SQL Server数据库中存储时间间隔的最佳方法是什么? - 代码日志