l--*_*''' 3 sql sql-server sql-server-2008
我在表中有四个字段:
date entered, time entered, date completed, time completed
Run Code Online (Sandbox Code Playgroud)
我想知道日期/时间ENTERED和日期/时间COMPLETED之间的区别
例如
date entered = 1/1/2001
time entered = 10:00
time completed = 1/2/2001
time completed = 11:00
Run Code Online (Sandbox Code Playgroud)
差异是25小时.
如何使用select语句执行此计算?
我刚试过这个:
DATEDIFF(hh,dateadd(hh,[Time Entered],[Date Entered]),dateadd(hh,[Time Completed],[Date Completed]) ) AS [Hours]
Run Code Online (Sandbox Code Playgroud)
并得到以下错误:
Msg 8116, Level 16, State 1, Line 2
Argument data type time is invalid for argument 2 of dateadd function.
Run Code Online (Sandbox Code Playgroud)
Declare @dateentered date = '20010101'
Declare @timeentered time = '10:00'
Declare @datecompleted date = '20010102'
Declare @timecompleted time = '11:00'
select datediff(hh, @dateentered + cast(@timeentered as datetime),
@datecompleted + cast(@timecompleted as datetime))
Run Code Online (Sandbox Code Playgroud)
因此,就表格的列而言:
select datediff(hh, [date entered] + cast([time entered] as datetime),
[date completed] + cast([time completed] as datetime)) as [Hours]
Run Code Online (Sandbox Code Playgroud)