【问题标题】:PostgreSQL: Add Interval to Timestamp from column valuePostgreSQL:从列值向时间戳添加间隔
【发布时间】:2012-07-02 22:45:37
【问题描述】:

我需要添加来自带有时间戳的整数列的分钟数,以与另一列进行比较。

这是一个例子:

 SELECT t1.id_liame, t1.id_table, t1.periodicidade , t3.data_extracao, 
    CASE WHEN(NOW() < (e.data_extracao + INTERVAL t1.periodicidade || '
    MINUTES')) 
    THEN 'yes' ELSE 'no' END
    FROM table1 as t1 LEFT JOIN liame_has_extracao as t2 USING(id_liame)
    LEFT JOIN extracao as t3 USING(id_extracao)

l.periodicidade 是整数(分钟)
我需要验证data_extracao(timestamp) 是否大于NOW() + l.periodicidade(integer - minutes)

我该怎么做?

【问题讨论】:

  • 旁白:查询中的别名错误:e.data_extracao extracao as t3

标签: postgresql postgresql-8.4


【解决方案1】:

你可以这样写你的查询:

SELECT 
   t1.id_liame,
   t1.id_table,
   t1.periodicidade,
   t3.data_extracao,
   CASE
      WHEN(NOW() < (t3.data_extracao + (INTERVAL '1 min' * t1.periodicidade))) 
      THEN 'yes' ELSE 'no'
   END
FROM table1 AS t1
LEFT JOIN liame_has_extracao AS t2 USING(id_liame)
LEFT JOIN extracao AS t3 USING(id_extracao)

如您所见,您可以将间隔与整数相乘,因此使用 INTERVAL '1 minute' 您可以定义基本单位并乘以实际时间间隔。

希望有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-16
    • 2018-03-22
    • 1970-01-01
    • 2021-03-18
    • 1970-01-01
    • 2011-01-20
    • 1970-01-01
    • 2023-01-21
    相关资源
    最近更新 更多