2016-05-17 5 views
0

私のSQL文は、このようなものです0答えを得た:私は私の時間を減算するDATEDIFFを使用しますが、私は実行するたびに

SELECT DATEDIFF(hh, TimeIn,OutTime) AS Hours_Rendered 
FROM DTR_TimeRecord 
+0

timelnとOUTTimeはの日は何ですか? –

+0

サンプルデータ(好ましくはDDL + DML)と希望の結果を含めるように質問を編集してください。 –

+0

DATEDIFFの動作についての情報は、https://msdn.microsoft.com/en-us/library/ms189794.aspxを参照してください。 – Alex

答えて

0

DATEDIFFは、暗黙的にDATETIME2型として文字列リテラルをキャストしていることに注意してください。これは、日付が文字列として渡されたときにDATEDIFFがYDM形式をサポートしないことを意味します。 YDM形式を使用するには、文字列をdatetimeまたはsmalldatetime型に明示的にキャストする必要があります。

参考:https://msdn.microsoft.com/en-us/library/ms189794.aspx

0

あなたTimeInとOUTTimeは、同じ時間でなければなりません。以下のようなクエリ上記

TimeIn : '2016-05-17 11:31:33.190' 
OutTime: '2016-05-17 11:35:41.790' 

select DATEDIFF(HH, '2016-05-17 11:31:33.190', '2016-05-17 11:35:41.790') 

はいつもあなたの

0を与えるしかし、あなたのOUTTimeは 'の2016年5月17日12:35:41.790' ですと仮定できるようになるその後

select DATEDIFF(HH, '2016-05-17 11:31:33.190', '2016-05-17 12:35:41.790') 

上のクエリはあなたに1を与えるでしょう

+0

感謝しました。この形式で回答を表示します.HH:MI:SS how私はこれをすることができますか? – Ralph

0

これは間違いなくあなたに役立つ

SELECT convert(TIME,dateadd(ms,DateDiff(ss, TimeIn, OutTime)*1000,0),114) AS Hours_Rendered 
FROM DTR_TimeRecord 
関連する問題