2
A
回答
4
您可以使用左,右和子提取值,然後進行一些計算。
declare @S varchar(8) = '88:52:57';
select left(@S, 2) + substring(@S, 4, 2)/60.0 + right(@S, 2)/60.0/60.0;
如果你不總是有兩個數字值,你可以使用parsename來獲取值。
declare @S varchar(20) = '088:052:057';
select parsename(S.X, 3) + parsename(S.X, 2)/60.0 + parsename(S.X, 1)/60.0/60.0
from (select replace(@S, ':', '.')) as S(X)
1
嘗試像這樣(最好從這個創建UDF):
首先我分裂時變上通過XML的雙點。剩下的就是簡單的計算...
DECLARE @YourTime VARCHAR(100)='88:52:57';
WITH Splitted AS
(
SELECT CAST('<x>' + REPLACE(@YourTime,':','</x><x>') + '</x>' AS XML) TimeParts
)
,TimeFract AS
(
SELECT TimeParts.value('/x[1]','float') AS HourPart
,CAST(TimeParts.value('/x[2]','int') * 60 + TimeParts.value('/x[3]','int') AS FLOAT) Seconds
FROM Splitted
)
SELECT HourPart + Seconds/3600
FROM TimeFract
結果
88,8825
1
試試這個,解決方案是基於轉換,使得它的安全,如果格式總是(H)H:MI:SS :
DECLARE @S varchar(8) = '88:52:57';
SELECT
CAST(REPLACE(left(@S, 2), ':', '') as int)+
CAST(CAST(CAST('0:'+RIGHT(@S, 5) as datetime) as decimal(10,10)) * 24 as decimal(2,2))
結果:
88.88
相關問題
- 1. 在SQL Server 2012中將時間轉換爲十進制2012
- 2. UTC轉換爲十進制的時間
- 3. 將十進制表示時間轉換爲小時,分鐘,秒
- 4. 如何在postgresql中將時間間隔轉換爲十進制值?
- 5. 將時間戳從二進制轉換爲十六進制
- 6. 在R中將十進制數字double轉換爲小時,時間或difftime
- 7. 將十進制/十六進制數轉換爲C中的時間戳
- 8. 如何十進制分鐘轉換爲小時:分鐘在SQL Server
- 9. 如何在excel中將十進制轉換爲時間
- 10. Excel如何將12小時時間(文本值)轉換爲十進制數字?
- 11. Python中十進制時間的時間
- 12. 在SQL中將時間轉換爲12小時制格式
- 13. 將十進制小時轉換爲小時分秒
- 14. 將十進制小時轉換爲HH:ii:ss大於24小時
- 15. CRM從十進制小時轉換爲正常小時
- 16. 如何將SQL Server 2008中的varchar時間轉換爲時間
- 17. 轉換Teradata的時間戳(6),以日期時間爲SQL Server
- 18. 將大時間格式轉換爲Excel中的十進制數
- 19. 如何將時間戳從十六進制格式轉換爲EPOCH時間戳?
- 20. 強制將時間戳或時間間隔字符串轉換爲時間戳
- 21. 如何將小數時間轉換爲SQL Server 2008中的時間
- 22. 如何在SQL Server中將分鐘數轉換爲時間間隔?
- 23. SQL Server 2005 varchar丟失小數位轉換爲十進制
- 24. 如何在PHP中將12小時時間轉換爲24小時制時間?
- 25. 將MysQl時間轉換爲十進制格式
- 26. 使用javascript將十進制時間轉換爲hh:mm格式
- 27. Java將十六進制轉換爲時間
- 28. Android:將十進制數轉換爲時間
- 29. .NET:日期時間轉換爲十進制
- 30. 將64位十六進制轉換爲Windows日期時間
這將做到這一點。但是,如果我得到格式爲'121:32:43'的時間間隔,則會出現問題 – tom
您可能會用'SELECT CHARINDEX(':','88:52:57')替換第一個「2」,然後第二個用'SELECT CHARINDEX(':','88:52:57',CHARINDEX(':','88:52:57')+ 1)'或者像我在我的回答中那樣使用分裂。 – Shnugo
@Shnugo添加了適用於不同長度值部件的版本。 –