SQL 时间戳查询:检查一个时间戳是不是早于另一个
Posted
技术标签:
【中文标题】SQL 时间戳查询:检查一个时间戳是不是早于另一个【英文标题】:SQL Timestamp query: Check if one timestamp is earlier than anotherSQL 时间戳查询:检查一个时间戳是否早于另一个 【发布时间】:2019-12-10 16:42:47 【问题描述】:对于 CallLogTable....我需要编写一个查询来查找其中一行的 created_ts 时间戳比该行的 updated_ts 时间戳更早的时间戳立即之前。第 1 行和第 2 行是一个示例(第 2 行的 created_ts 早于第 1 行的 updated_ts)。我见过 Rownums 的使用,但不知道如何在这里应用它。非常感谢您的帮助!
【问题讨论】:
【参考方案1】:您可以使用窗口函数。 lag()
允许您访问上一行,然后您可以比较相关列:
select *
from (
select
t.*,
lag(updated_ts) over(order by id) lag_updated_ts
from mytable t
) t
where created_ts < lag_updated_ts
这假定列id
可用于对记录进行排序。如果您想要不同的列进行排序,则可以更改窗口函数的order by
子句。
【讨论】:
有没有办法(在 SQL Server 中)可以忽略毫秒差异?即仅返回存在秒数差异的场景 有没有办法可以排除这个查询中的毫秒数?非常感谢。 (或者更理想地说是 5 秒的时间差)以上是关于SQL 时间戳查询:检查一个时间戳是不是早于另一个的主要内容,如果未能解决你的问题,请参考以下文章
python redistimeseries 时间戳不能早于时间序列中的最新时间戳