2010-07-01 44 views
2

我正在处理应用程序中存储数据库的时间值,例如预计到达时间和实际到达时间。将这些字段存储在数据库中的最佳方式是什么?将时间值存储在数据库中并获取两个时间字段之间的差异

可以使用什么SQL查询来获取两个字段之间的时间差?

+0

SQL Server的**版本**? 2005年没有“TIME”数据类型,而2008年没有。 – 2010-07-01 06:27:53

回答

2

如果您使用SQL Server 2008,请使用TIME数据类型。声明这两个领域

ExpectedTimeOfArrival TIME(7), 
ActualTimeOfArrival TIME(7) 

如何操纵TIME数据类型here阅读起来。

一旦你有了这两个字段,你可以添加一个计算列到你的表中,计算出这两个字段之间的差异,例如,在分:

ALTER TABLE dbo.YourTable 
    ADD TimeDifference AS DATEDIFF(MINUTE, ActualTimeOfArrival, ExpectedTimeOfArrival) 

,然后你可以查询但愿新列TimeDifference就好像它是一个正常的,常规的表列。

+0

Thanx Marc_s 在什么元素中,我用来填写时间字段..我使用datetimepicker或文本框?如果我使用文本框,如何将其转换为时间? Thanx – Allan 2010-07-01 06:57:22

+0

@Allan:我可能会使用一个文本框,并可能使用正则表达式进行备份以确保用户以'hh:mm:ss'的形式在该文本框中输入内容(并以其他方式将其拒绝为无效) – 2010-07-01 08:22:40