我知道這是一個簡單的問題,但我卡住了。我單獨嘗試了DateDiff
一天一小時,但我希望我的日期能夠檢測我的時間,如果它超過24小時。Datediff日期和小時(24小時)
例如:
Date1: 20/12/2011
Time1: 9:00
Date2: 21/12/2011
Time2 : 13:00
Days Taken: 1
Time Taken: 28
我要計算的日期和時間,所以1天,4個小時我期望的結果。
任何人都可以請幫助我如何做到這一點?欣賞。
我知道這是一個簡單的問題,但我卡住了。我單獨嘗試了DateDiff
一天一小時,但我希望我的日期能夠檢測我的時間,如果它超過24小時。Datediff日期和小時(24小時)
例如:
Date1: 20/12/2011
Time1: 9:00
Date2: 21/12/2011
Time2 : 13:00
Days Taken: 1
Time Taken: 28
我要計算的日期和時間,所以1天,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
在sql-server中;
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
所有這些問題的答案假設你的類型是'DATETIME'但你的問題看起來,如果你可能有'DATE'並單獨存儲,你可以從'SQL服務器2008'辦起'TIME'。你能澄清嗎? – MarkD
@MarkD亞,我的數據類型是DATETIME,我的日期和時間是分開存儲的。你能提供一些建議嗎?謝謝 – Bella
當然,我可以 - 但我首先需要知道提供的答案有什麼問題嗎? – MarkD