我知道这是一个简单的问题,但我卡住了。我单独尝试了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