【问题标题】:SQL to find mill-second aprt recordsSQL查找毫秒aprt记录
【发布时间】:2013-07-27 21:31:11
【问题描述】:

我需要一些帮助,我需要找到其中一些具有相同时间戳或 500 毫秒时差的记录,这里是示例数据:

  1. 2013-07-27 11:23:12.677
  2. 2013-07-27 11:23:12.378
  3. 2013-07-27 11:22:14.110
  4. 2013-07-27 11:21:24.103
  5. 2013-07-26 12:24:31.455
  6. 2013-07-26 12:24:31.455
  7. 2013-07-26 11:23:12.367
  8. 2013-07-26 11:22:32.111

rec #1 和 #2 相隔 299 毫秒,rec #5 和 #6 相隔 0 毫秒,当搜索以下数据时,我应该得到记录 #1、#2 和 #5、# 6等等……

请任何帮助或合适的 SQL 将极大地帮助我。

【问题讨论】:

  • 你用的是什么数据库?

标签: sql time timestamp milliseconds


【解决方案1】:

SQL 引擎的日期时间函数不同。对于许多人来说,简单地减去它们会产生天数的差异。

因此,以下查询会产生您想要的结果:

select t1.*
from t t1 join
     t t2
     on abs(t1.ts - t2.ts) < (500.0 / (24*60*60*1000));

或者,或者:

select t.*
from t
where exists (select 1 from t t2 where abs(t.ts - t2.ts) < (500.0 / (24*60*60*1000)) )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多