2016-09-27 172 views
0
Create Table 
(
    id int identity(1,1), 
    WorkHours int 
) 

這是我的表,它將工作時間存儲爲整數。我的要求是顯示DD:HH格式的工作時間。這怎麼可能?將小時轉換爲天:SQL Server中的小時格式

+1

我這輩子沒見過一個'天:hours'格式。你確定你想要嗎? – Lamak

+0

從哪裏DD應該參考? –

+0

你的問題到底在哪裏?你有幾個小時,例如33. 1天9小時(33 = 24 + 9)。所以這只是數學,然後是一個字符串操作,將其顯示爲'dd:hh'。 –

回答

0
with Calcs as 
(
select id, floor(WorkHours/24) as DDField, (WorkHours/24)-floor(WorkHours/24) as HHField 
from MyTable 
) 
select id, DDField + ':' + HHField 
from Calcs 
+1

您可以使用'WorkHours%24'而不是'(WorkHours/24)-floor(WorkHours/24)' – Lamak

+1

此外,WorkHours是一個'INT',所以不需要'FLOOR' – Lamak

+0

@Lamak我不是地板該字段,我是地板的計算 – JohnHC

1

爲了得到它DD:HH格式,你需要做一些數學以及一些00的填充(或你d:H)格式:

select RIGHT('00' + CONVERT(VARCHAR, WorkHours/24), 2) + ':' + RIGHT('00' + CONVERT(VARCHAR, WorkHours% 24), 2) 
from MyTable 
0
  • 整數除法在SQL Server中是int1/int2
  • SQL-Server中的模是int1 % int2
  • 在SQL-Server中格式化數字的功能是FORMAT
  • SQL-Server中的字符串連接運算符是非標準的+

查詢:

select format(workhours/24, '00') + ':' + format(workhours % 24, '00') 
from mytable; 
相關問題