我有一个表,我想跟踪时间,所以有效的条目可能是:
> 1小时3分钟
> 47分钟
> 10小时
> 3分14秒
什么字段类型最适合用于此.我显然可以使用varchar.但是我认为可能会有更好的东西,因为我想运行查询以总计多个记录的时间量.
解决方法
不要使用字符类型来存储日期/时间信息.
在sql Server 2008中,您有时间类型,如果您的时间间隔小于1天,则应该使用该类型.在以前的版本中,或者如果需要存储更大的间隔时间,则必须使用datetime或smalldatetime(取决于所需的精度).
另一个选择是选择一个时间单位 – 比如说分钟 – 只需使用一个int值来表示单位数.只需确保(a)您选择的单位实际上足够精确,可记录您需要跟踪的最小间隔,(b)实际的数字类型足够大以容纳您需要跟踪的最大间隔.一小时可能足以跟踪一天内的分钟数;另一方面,跟踪十年内的毫秒数将不得不将其存储为bigint.