2012-05-28 50 views
0

我有一列作爲varchar(10)進入我的SQL數據庫,但看起來像HH:MM:SS。列名稱是runTime。SQL計算HH:MM:SS

我需要將該列轉換爲秒,並使用它和另一個名爲totalItems的colunm進行一些計算。 totalItems是一個int數據類型。一個計算的一個例子是:

totalItems/runTime 

所以,這看起來好像我需要運行時轉換爲十進制,然後在計算中使用它,但是當我不能這樣做,沒有先轉換時間到秒,或者我得到一個錯誤(由於「:」)。

那麼,我怎麼可能先將sessionRunTime轉換爲秒,然後將這些秒轉換爲十進制數據類型,然後從那裏做計算?一個例子可能是59222 totalItems和04:15:17 runTime。

如果還有更好的方法來處理這個問題,我當然也會接受。謝謝!

回答

0

只要小時部分不匹配或超過24,就可以convert到datetime和使用built in functions制定出時間以秒爲單位多久:

select DATEDIFF(second,'00:00:00',CONVERT(datetime,'04:15:17')) 

15317 

如果你需要做數學這個結果,另一個值是int,那麼多一個或者012等價值觀如果需要,強制將數學作爲float s完成。

0

您可以投到datetime並使用datediff將您的字符串轉換爲秒。

select datediff(second, 0, cast('04:15:17' as datetime)) 

結果:

15317