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

これは勤務時間を整数で格納する私のテーブルです。私の要件は、DD:HH形式で勤務時間を表示することです。どのように可能ですか?時刻を日に変換する:SQL Serverの時形式

+1

決して私の人生の中で私は '日を見てきました。あなたはそれをしてもよろしいですか? – Lamak

+0

ここからDDは参照する必要がありますか? –

+0

あなたの問題はどこですか?時間はありますか? 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)-floor(WorkHours/24)'の代わりに 'WorkHours%24'を使うことができます – Lamak

+1

また、WorkHoursは' INT'なので 'FLOOR'のどちらも必要ありません – Lamak

+0

@Lamak私はフローリングしていませんフィールドは、私はcalcをフローリングしています – 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サーバーではint1/int2です。
  • SQLサーバーのモジュロはint1 % int2です。
  • SQLサーバーで数値を書式設定する関数はFORMATです。
  • SQL-Serverの文字列連結演算子は非標準の+です。

クエリ:hours`形式:

select format(workhours/24, '00') + ':' + format(workhours % 24, '00') 
from mytable; 
関連する問題