我有一个类似这样的查询
select days, date(date_event) + interval '10' day from tbl_user_marketing_program as programtable
现在代替' 10',我想添加"天"中的值。柱。我怎么能这样做?
我尝试了select user_id, date(date_event) + interval user_id day from tbl_user_marketing_program as programtable
然后我得到了以下错误
错误:语法错误时间或附近"日" 第1行:... ect user_id,date(date_event)+ interval user_id day from t ...
答案 0 :(得分:7)
不幸的是,间隔的“数字”不能是任意表达式,它必须是字符串常量(这是一个奇怪的选择)。您需要使用一些解决方法:
select days, date(date_event) + (days * interval '1' day)
from tbl_user_marketing_program as programtable
但是date + integer
也是直接支持的,在这种情况下单位是天。所以你也可以写:
select days, date(date_event) + days
from tbl_user_marketing_program as programtable
答案 1 :(得分:0)
您可以引用$var = "1.25";
$whole = floor($var); // 1
$decimal = fmod($var, 1); //0.25
:
'10 days'
的 SqlFiddleDemo
强>
如果要添加变量/列使用:
日期时间+变量* INTERVAL'1天'
select days, date(date_event) + interval '10 days'
from tbl_user_marketing_program as programtable
的 SqlFiddleDemo
强>
答案 2 :(得分:0)
如果days列是整数,则首先将其转换为区间类型:
select days, date(date_event) + cast(days as interval day(7))
from tbl_user_marketing_program as programtable