MySQL验证时间戳增加10分钟

时间:2011-10-31 22:06:49

标签: mysql timestamp

我正在使用每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。

1 个答案:

答案 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;