Sql 如何向给定日期添加可变分钟数?
我有下一个使用postgresql的查询: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
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'
这对博士后来说是无效的,即使这在博士后中有效,这也不是马可所要求的。要添加的间隔存储在第二个表中。