Sql 将Int添加到DateTime
我有一个表,有两列Sql 将Int添加到DateTime,sql,postgresql,Sql,Postgresql,我有一个表,有两列RegisterDate和ActiveDays(int) 我想将ActiveDays添加到RegisterDate,并将其与现在的日期进行比较 我使用下面的查询 select RegisterDate + INTERVAL cast(ActiveDays as text) || ' day' ..... 但这会导致错误: “cast”处或附近出现语法错误 要解释您得到的错误,您可以使用以下内容: INTERVAL cast(ActiveDays as text) ||
RegisterDate
和ActiveDays
(int)
我想将ActiveDays添加到RegisterDate,并将其与现在的日期进行比较
我使用下面的查询
select RegisterDate + INTERVAL cast(ActiveDays as text) || ' day' .....
但这会导致错误:
“cast”处或附近出现语法错误
要解释您得到的错误,您可以使用以下内容:
INTERVAL cast(ActiveDays as text) || ' day'
乍一看,它的工作原理应该与:
INTERVAL '5 day'
但是这里的INTERVAL
实际上不是一个cast操作符,它是一个文本字符串类型的注释-基本上,定义了引号的含义
如果您将其切换到正常的转换模式
,它将工作:
CAST(CAST(ActiveDays as text) || ' day' as INTERVAL)
或者您可以使用Postgres的非标准的:
cast操作符,这使它更具可读性:
(ActiveDays::text || ' day')::interval
或者,正如建议的那样,您可以采用不同的方法,将一天乘以适当的整数:
ActiveDays * INTERVAL '1 day'
请注意,这里我使用的是您先前尝试使用的文本语法