2010-07-01 47 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