首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SQL Server中执行日期/时间减法

问在SQL Server中执行日期/时间减法
EN

Stack Overflow用户
提问于 2012-03-15 07:31:28
回答 5查看 13.4K关注 0票数 3

我在一个表中有四个字段:

代码语言:javascript
复制
date entered, time entered, date completed, time completed

我想知道输入日期/时间和完成日期/时间的区别

例如

代码语言:javascript
复制
date entered = 1/1/2001
time entered = 10:00
time completed = 1/2/2001
time completed = 11:00

差别是25个小时。

如何使用select语句执行此计算?

我刚试过这个:

代码语言:javascript
复制
DATEDIFF(hh,dateadd(hh,[Time Entered],[Date Entered]),dateadd(hh,[Time Completed],[Date Completed]) ) AS [Hours]

并得到以下错误:

代码语言:javascript
复制
Msg 8116, Level 16, State 1, Line 2
Argument data type time is invalid for argument 2 of dateadd function.
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-03-15 07:59:41

代码语言:javascript
复制
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))

因此,就表的列而言:

代码语言:javascript
复制
select datediff(hh, [date entered] + cast([time entered] as datetime), 
                    [date completed] + cast([time completed] as datetime)) as [Hours]
票数 5
EN

Stack Overflow用户

发布于 2012-03-15 07:38:36

代码语言:javascript
复制
select datediff(hour,'1/1/2001 10:00','1/2/2001 11:00')
票数 3
EN

Stack Overflow用户

发布于 2012-03-15 07:38:09

使用DateDiff

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9711909

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档