Sql 如何向给定日期添加可变分钟数?

Sql 如何向给定日期添加可变分钟数?,sql,postgresql,date,Sql,Postgresql,Date,我有下一个使用postgresql的查询: SELECT TIMESTAMP fecha_cita + cast((select tiempo_intervencion from cita_intervencion) as interval) from cita; 我在这里所做的基本上是从“cita”表中选取一个像“2001-09-28 01:00”这样的日期,这就是fecha_cita,我想在这个完整的日期上增加更多的时间,在这种情况下,“tiempo_intervencion”类似于“1

我有下一个使用postgresql的查询:

SELECT TIMESTAMP fecha_cita + cast((select tiempo_intervencion from cita_intervencion) as interval) 
from cita;
我在这里所做的基本上是从“cita”表中选取一个像“2001-09-28 01:00”这样的日期,这就是fecha_cita,我想在这个完整的日期上增加更多的时间,在这种情况下,“tiempo_intervencion”类似于“120分钟”,但这些信息在另一个名为“cita_intervencion”的表中,问题是,由于这些变量是日期和时间,而不是固定的日期,所以选择时间戳“2010-11-19 01:11:22”+间隔“120分钟”对我不起作用,我会出现如下错误:

错误:在fecha_cita或其附近出现语法错误 第1行:选择时间戳fecha\u cita+castselect tiempo\u interferci。。。 错误:无法将类型d_entro_p强制转换为间隔 第1行:…CTTiempo\u干预作为间隔从cita\u干预

我已经在谷歌上查找了一些关于这方面的信息,我试图跟进,但我找不到任何可以解决我问题的方法。

您可以使用:

select DATEADD(MINUTE,120,GETDATE())

需要联接,然后将字符串强制转换为间隔:

SELECT c.fecha_cita, fecha_cita + ci.tiempo_intervencion::interval
from cita c
  join cita_intervencion ci on c.id = ci.cita_id;
这假设在cita_interfercion中有一列链接回cita表。如果你真的没有,你可以这样做:

SELECT c.fecha_cita, fecha_cita + (select tiempo_intervencion::interval from cita_intervencion)
from cita c
但这只有在cita_intervencion只包含一行时才有效

仅当tiempo_Intermedicion中的值符合间隔规则时,才能对间隔进行强制转换

对于已定义为时间戳的列,不需要timestamp关键字,该时间戳仅用于引入时间戳文本常量值

选择时间戳“2010-11-19 01:11:22”+间隔“120分钟对我不起作用

如果您为间隔文字添加缺少的'

SELECT TIMESTAMP '2010-11-19 01:11:22' + INTERVAL '120 minutes'

这对博士后来说是无效的,即使这在博士后中有效,这也不是马可所要求的。要添加的间隔存储在第二个表中。