3

簡単な質問だと思いますが、行き詰まっています。曜日と時間を別々に試しDateDiffましたが、24 時間を超える場合に日付を検出できるようにしたいと考えています。

例えば:

Date1: 20/12/2011
Time1: 9:00

Date2: 21/12/2011
Time2 : 13:00

Days Taken: 1
Time Taken: 28

日数と時間を計算したいので、1 日と 4 時間が望ましい結果です。

誰でもこれを行う方法を教えてもらえますか? 感謝。

4

3 に答える 3

4

おそらくの助けを借りてMODULO

SELECT (
  DATEDIFF(dd,
    CONVERT(datetime,'20/12/2011 09:00:00',104),
    CONVERT(datetime,'21/12/2011 13:00:00',104))
 ) AS [days taken],
(
  DATEDIFF(hh,
    CONVERT(datetime,'20/12/2011 09:00:00',104),
    CONVERT(datetime,'21/12/2011 13:00:00',104))
   % 24
 ) AS [hours taken]

結果:

DAYS TAKEN      HOURS TAKEN
    1                4

デモ

于 2013-01-11T08:51:06.367 に答える
2

SQL サーバーで。

declare @d1 datetime = '20111220 09:00:00'
declare @d2 datetime = '20111221 13:00:00'

select hours/24 daysTaken, hours%24 hoursTaken
from (
    select datediff(hh,@d1,@d2) hours
) A

--Results
daysTaken hoursTaken
   1          4
于 2013-01-11T08:55:28.553 に答える
-1

SQLServerを使用していると仮定します

Select datediff(hour,date1,date2)/24.0 from table
于 2013-01-11T08:50:44.227 に答える