2012-11-23 47 views
1

嗨,我有一个小问题,你可以在这方面对我有利吗?两条记录之间的时间间隔

SELECT `name` , `mytimestamp` 
FROM `profile` 
WHERE `mytimestamp` between '2012-10-24 05:59:00' AND '2012-10-25 05:59:00' 
ORDER BY `name` , `mytimestamp` 

上述查询给我周围的3000条记录名单从我的表,我的表100名存在,对于那些名字的几个时间戳无济于事, 现在我的问题是,我必须找到它有3个小时的名字间隙?

我需要做一个查询本身在mysql ......

thx to all!

+0

STATIC之间的时间? –

+0

嗨尼拉姆医生thx回复那些时间是动态的 – user1711663

+0

如何:http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_datediff? – fatfredyy

回答

0

这个查询会发现你有在配置表多行的所有用户,而这两个之间的间隔比interval更大。

SELECT DISTINCT p1 name 
FROM profile p1 
INNER JOIN profile p2 on p1.name = p2.name 
WHERE p2.mytimestamp - p1.mytimestamp > interval; 
+0

嗨samuil在您的查询3小时,我可以直接使用3,而不是间隔? – user1711663

+0

不,除非您将使用一些mysql函数进行减法(例如'TIMESTAMPDIFF') – samuil

-2

这可能有助于

SELECT * 
     FROM table 
    WHERE datetime BETWEEN TO_DATE ('10/30/2012 06:00:00', 
               'MM/DD/YYYY HH24:MI:SS' 
              ) 
           AND TO_DATE ('10/30/2012 16:12:00', 
               'MM/DD/YYYY HH24:MI:SS' 
              ) 
       AND TO_DATE ('10/30/2012 16:12:00', 
               'MM/DD/YYYY HH24:MI:SS' 
              )- TO_DATE ('10/30/2012 06:12:00', 
               'MM/DD/YYYY HH24:MI:SS' 
              )>2      
+0

我已经测试运行在oracle中,它可能会有所不同在mysql中的语法 – sayannayas

+0

yup sayannays它在oracle中工作,但在mysql中它不工作 – user1711663

+0

只是不要使用to_date和使用像你之间使用“之间2012-10-24 05:59:00'和'2012-10-25 05:59:00'” – sayannayas