我有一个表 我如何判断两条记录的时间间隔
ID DutyNum NAME UPdateTIME
1 1 TEST 2014-10-30 14:43:30.000
2 1 TEST 2014-10-30 14:44:30.000
如何获得这两条数据的更新时间的间隔
------解决思路----------------------
DATEDIFF(类型,时间1,时间2)可以判断时间的差
类型 Year为年
类型 Month为月
类型 Day为日
类型 HOUR为时
类型 MINUTE为分
类型 second为秒
不知道你具体想怎么处理
------解决思路----------------------
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
------解决思路----------------------
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*/