sql 关于时间字段的处理?

来源:百度知道 编辑:UC知道 时间:2024/06/23 21:51:28
工时表中有一个工作时长的字段,记录格式为:
100:20:30
20:20:20
05:20:20
00:20:20
用以上这样的格式来记录工作时长,在以后的应用中会用这个字段的数据进行计算,比如转换成分钟,用这个时长加减基础时长后换算为数字等。
现在我想问问大家,这个工作时长的字段,在SQL里用什么数据类型以及程序里用什么方式来处理比较好,我是用VB做的前台,最好大家把处理方法说详细一点。
谢谢

1,工时表的基础时间都是以秒来计算的,而工时定额或劳动定额也是用秒来计算的,从理论上来讲只要把工时统计和工时定额的时间标准统一到秒就不用进行分种的转换.
2,数据类型问题:一种是用字符型,另一种是用数值型.字符型的只需一个字段就可以,而数值型就需要用多个.字符型的优势在于如果你的工时表的工作时长不固定,可能是三个,也可能是更多的话,都不能担心存放不下,但计算时不是十分的方便,在SQL中有一个replace函数,可以把字符串中的':'替换成'+'或'-'号,这样你就可以在查询输出时把工作时长显示成表达式,而不需要改变数据库中数据的内容,这样你就可以在VB中计算了.(例: SELECT REPLACE(工作时间,':','-') 时间 FROM 工时表).至于数值型就有多少个时长就要建立多少个字段,计算起来方便,但在工时个数可变时就不能使用了.

用datetime,用的时候取时间就可以了,这个便于计算,用nvarchar不知道计算行不行,没试过。

个人认为使用数值类型比较好,且以秒为单位。将来计算较为方便,很容易进行小时、分钟、秒的计算或转换。用时间类型,将来统计运算分析可能要进行多次转换,比较麻烦!