标题: [SQLServer] 求助一个关于取时间段间隔的语句 (查看:463 回复:2)
YUEYANGFLASH
入门网管



UID 567499
精华 1
积分 82
帖子 252
MST币 1273 点    
BST币 82 点    赚取
阅读权限 70
注册 2007-8-27
状态 离线
 
[ 使用道具 ]  
发表于 2008-3-25 10:30  [ 资料 ]  [ 博客 ]  [ 短消息 ]  [ 加为好友
爱琴思邮件系统iGENUS V5.0
求助一个关于取时间段间隔的语句
本帖发表在我是网管论坛,帖子地址:http://bbs.54master.com/238683,1,1
2008-03-23 10:10:15.000
2008-03-23 10:12:17.000
2008-03-23 10:12:33.000
2008-03-23 10:13:37.000
2008-03-23 10:42:39.000
2008-03-23 10:42:41.000
2008-03-23 10:43:42.000
2008-03-23 10:44:38.000
2008-03-23 11:00:05.000
2008-03-23 11:01:19.000
2008-03-23 11:01:36.000
2008-03-23 11:02:11.000
2008-03-23 11:23:22.000
2008-03-23 11:45:06.000
要求:
以上时间段是一个例子,我的要求是,整个数据库按时间字段排序,然后判断出时间间隔大于20分钟的时间段,
例如:
2008-03-23 10:13:37.000     
2008-03-23 10:42:39.000   

2008-03-23 11:02:11.000
2008-03-23 11:23:22.000
2008-03-23 11:45:06.000

DATEDIFF(minute,LastVisitTime,getdate())>20这个函数虽然符合一点要求,但是不行,他取得是当前时间,
我要判断的是上一条记录和下一条记录的时间间隔大于20分钟的!

请帮忙看下!谢谢!

[ 点这里复制网址,推荐给你QQ/MSN上的好友们! ]
本站声明:以上内容由网友 YUEYANGFLASH 提供,与54master立场无关!
《我是网管》论坛
[ 顶部 ]
YUEYANGFLASH
入门网管



UID 567499
精华 1
积分 82
帖子 252
MST币 1273 点    
BST币 82 点    赚取
阅读权限 70
注册 2007-8-27
状态 离线
 
[ 使用道具 ]  
发表于 2008-3-26 09:26  [ 资料 ]  [ 博客 ]  [ 短消息 ]  [ 加为好友
create table tb(时间 datetime)
insert into tb values('2008-03-23 10:10:15.000')
insert into tb values('2008-03-23 10:12:17.000')
insert into tb values('2008-03-23 10:12:33.000')
insert into tb values('2008-03-23 10:13:37.000')
insert into tb values('2008-03-23 10:42:39.000')
insert into tb values('2008-03-23 10:42:41.000')
insert into tb values('2008-03-23 10:43:42.000')
insert into tb values('2008-03-23 10:44:38.000')
insert into tb values('2008-03-23 11:00:05.000')
insert into tb values('2008-03-23 11:01:19.000')
insert into tb values('2008-03-23 11:01:36.000')
insert into tb values('2008-03-23 11:02:11.000')
insert into tb values('2008-03-23 11:23:22.000')
insert into tb values('2008-03-23 11:45:06.000')
go

select m.时间 开始时间 , n.时间 结束时间 from
(select 时间 , px = (select count(*) from tb where 时间 < t.时间) + 1 from tb t) m,
(select 时间 , px = (select count(*) from tb where 时间 < t.时间) + 1 from tb t) n
where m.px = n.px - 1 and datediff(mi , m.时间 , n.时间) > 20

这个语句虽然可以达到我得要求!但是还有一点问题!

本站声明:以上内容由网友 YUEYANGFLASH 提供,与54master立场无关!
《我是网管》论坛
[ 顶部 ]
YUEYANGFLASH
入门网管



UID 567499
精华 1
积分 82
帖子 252
MST币 1273 点    
BST币 82 点    赚取
阅读权限 70
注册 2007-8-27
状态 离线
 
[ 使用道具 ]  
发表于 2008-3-26 09:26  [ 资料 ]  [ 博客 ]  [ 短消息 ]  [ 加为好友
create table tb(时间 datetime,编号)
insert into tb values('2008-03-23 10:10:15.000',1)  
insert into tb values('2008-03-23 10:12:17.000',1)  
insert into tb values('2008-03-23 10:12:33.000',1)  
insert into tb values('2008-03-23 10:13:37.000',1)  
insert into tb values('2008-03-23 10:42:39.000',1)  
insert into tb values('2008-03-23 10:42:41.000',1)  
insert into tb values('2008-03-23 10:43:42.000',1)  
insert into tb values('2008-03-23 10:44:38.000',1)  
insert into tb values('2008-03-23 11:00:05.000',1)  
insert into tb values('2008-03-23 11:01:19.000',2)  
insert into tb values('2008-03-23 11:01:36.000',2)  
insert into tb values('2008-03-23 11:02:11.000',2)  
insert into tb values('2008-03-23 11:23:22.000',2)  
insert into tb values('2008-03-23 11:45:06.000',2)  

我想先查出编号为“1”的所有数据,然后按照这个再行筛选!
谢谢!

本站声明:以上内容由网友 YUEYANGFLASH 提供,与54master立场无关!
《我是网管》论坛
[ 顶部 ]
  
 



当前时区 GMT+8, 现在时间是 2008-9-5 13:32

Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc.
Processed in 0.080681 second(s), 12 queries , Gzip enabled

清除 Cookies - 关于我是网管 - 联系我是网管 - 广告服务 - 诚聘版主 - 无图版 - WAP -