我正在使用每10分钟记录一次数据的日志文件。我正在尝试提出一个可以验证数据实际上每10分钟保存一次的查询。
以下是一些示例时间戳:
2008-01-01 00:00:00
2008-01-01 00:10:00
2008-01-01 00:20:00
2008-01-01 00:30:00
有关于此的任何想法吗?如果我认为它可以改进为正确但我没有任何值得张贴的内容,我会给出一些SQL。
答案 0 :(得分:0)
一个技巧是制作一个虚拟表,您可以尝试从日志文件中加入数据。在我的例子中,我使用postgres generate_series函数生成一系列第二个值以附加到初始时间戳(我假设MySQL中有类似的函数?)。
诀窍是使用要与实际数据进行左连接的虚拟表,以查找日志记录表中缺少值的位置(即logger.timestamp将为NULL的位置)。
这些行中的某些内容会显示缺少时间戳的位置。
SELECT
y.c
, logger.timestamp
FROM
(SELECT
a + cast(b || ' sec' as interval) as c
FROM
(SELECT
cast('2011-10-31 10:00:00' as timestamp) as a
,t.b from generate_series(0,100,10) as t(b)
)x
) y
LEFT JOIN (
SELECT timestamp from log
) logger ON y.c = logger.timestamp
WHERE
logger.timestamp IS NULL;