Denodo HTTP Client请求中日期参数设置问题咨询
Denodo HTTP/JSON数据源动态日期参数配置解决方案
一、日期函数正确性确认
你使用的日期函数是完全正确的:
FORMATDATE('yyyy-MM-dd', ADDDAY(now(), -1)):可准确获取昨日日期并转为yyyy-MM-dd格式FORMATDATE('yyyy-MM-dd', now()):可准确获取当日日期并转为yyyy-MM-dd格式
二、问题原因
之前的配置错误在于:直接将函数写在变量的默认值中,Denodo会把这段函数代码当作明文字符串拼接进URL,而不会解析执行函数逻辑,导致请求的URL包含未计算的函数代码,触发404错误。
三、正确配置方式
方式1:直接在URL中嵌入函数(简单场景)
创建HTTP/JSON基视图时,直接将日期函数写入相对URL,Denodo会自动解析计算函数值后再发起请求:
/values?Name=Foobar&Start=FORMATDATE('yyyy-MM-dd', ADDDAY(now(), -1))&End=FORMATDATE('yyyy-MM-dd', now())
方式2:使用变量+初始化表达式(灵活场景,支持动态调整)
如果需要保留变量的灵活性,按以下步骤配置:
- 创建基视图时,保留相对URL:
/values?Name=Foobar&Start=@start&End=@end - 进入基视图的变量设置界面:
- 选中
start变量,在「初始化表达式」字段中输入:FORMATDATE('yyyy-MM-dd', ADDDAY(now(), -1)) - 选中
end变量,在「初始化表达式」字段中输入:FORMATDATE('yyyy-MM-dd', now()) - 将两个变量的类型设置为
String(匹配日期字符串格式)
- 选中
- 保存配置后,Denodo会在执行查询时自动计算表达式的值,替换到URL中,不会再传递明文函数代码。
内容的提问来源于stack exchange,提问作者viktorkho
相关产品推荐
相关产品推荐

