作者TeemingVoid (TeemingVoid)
看板Database
标题Re: [SQL ] 时间筛选
时间Tue Feb 28 14:51:16 2012
※ 引述《lihsien (希洛)》之铭言:
: ...
: 假如资料表长这样 有没有一种语法是可以挑出时间间格的 也就是会变成这样
: number s_time
: 1 13:10:00
: 4 13:12:30
: 5 21:00:30
: 7 21:12:37
: 8 22:44:55
: 10 22:46:13
: 只要上下笔资料间格超过3分钟 就把他给挑出来
: 其实就是指说 我要每一段旅程的头跟尾
MySQL 有 TimeDiff() 函数可计算出两个时间的时间差,
利用这个函数搭配子查询,即可查出前後笔的时间差。
use test;
create table TaxiLog
(
id int primary key,
LogTime time -- 不包括日期
);
insert into TaxiLog (id, logTime) values
(1, '13:10:00'),
(2, '13:10:30'),
(3, '13:11:01'),
(4, '13:12:30'),
(5, '21:00:30'),
(6, '21:11:00'),
(7, '21:12:07'),
(8, '22:44:55'),
(9, '22:45:30'),
(10, '22:46:13');
select * from TaxiLog T
where TimeDiff(
(select LogTime from TaxiLog where id = T.id + 1), LogTime) >= '00:03:00'
or TimeDiff(
LogTime, (select LogTime from TaxiLog where id = T.id - 1)) >= '00:03:00'
or id = 1
order by id;
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.41.99.161