sql判断一时间字段的间隔

selg1984 2014-10-30 03:37:18
我有一个表 我如何判断两条记录的时间间隔
ID DutyNum NAME UPdateTIME
1 1 TEST 2014-10-30 14:43:30.000
2 1 TEST 2014-10-30 14:44:30.000

如何获得这两条数据的更新时间的间隔
...全文
369 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mr_Nice 2014-10-30
  • 打赏
  • 举报
回复
if object_id('[Table_1]') is not null drop table [Table_1]
create table [Table_1] (ID int,DutyNum int,NAME varchar(4),UPdateTIME datetime)
insert into [Table_1]
select 1,1,'TEST','2014-10-30 14:43:30.000' union all
select 2,1,'TEST','2014-10-30 14:44:30.000'

select * from [Table_1]


SELECT a.*,ISNULL(DATEDIFF(ss,b.UPdateTIME,a.UPdateTIME),0) AS [diff(s)]
FROM Table_1 a
left JOIN table_1 b ON a.id = b.id+1

/*
ID	DutyNum	NAME	UPdateTIME	diff(s)
1	1	TEST	2014-10-30 14:43:30.000	0
2	1	TEST	2014-10-30 14:44:30.000	60*/
Tiger_Zhao 2014-10-30
  • 打赏
  • 举报
回复
datetime 可以直接相减。不过由于它的零点是从 1900-01-01 00:00:00 起算的,如果不跨日就只显示时间会比较人性化。
WITH table1(ID,UPdateTIME) AS (
SELECT 1,Convert(datetime,'2014-10-30 14:43:30.000',120) UNION ALL
SELECT 2,Convert(datetime,'2014-10-30 14:44:30.000',120)
)
SELECT Convert(varchar(12),t2.UPdateTIME - t1.UPdateTIME,114) 间隔
FROM (SELECT UPdateTIME FROM table1 WHERE ID=1) t1,
(SELECT UPdateTIME FROM table1 WHERE ID=2) t2

间隔
------------
00:01:00:000
还在加载中灬 2014-10-30
  • 打赏
  • 举报
回复
DATEDIFF(类型,时间1,时间2)可以判断时间的差 类型 Year为年 类型 Month为月 类型 Day为日 类型 HOUR为时 类型 MINUTE为分 类型 second为秒 不知道你具体想怎么处理

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧