Re: [SQL ] 時間篩選
※ 引述《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
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):