我很难将开始日期和结束日期定义为查询参数。当数据被提取时,它需要返回一个基于查询参数的日期范围。GET看起来像http://localhost:8081/test?FileType=Sales&StartDate=2022-10-01&EndDate=2022-10-26。这将返回数据的日期范围为10/1/2022-10/26/2022。
在我的查询中,我的where子句设置为:
where dp.Nid = 405 and fs.DDate=:DDate**dp和fs在我的联接中使用,405是唯一标识产品的ID。
我的输入参数:
{ DDate : attributes.queryParams.StartDate, DDate : attributes.queryParams.EndDate }
我需要设置什么来确定一个日期范围?是否需要将开始日期设置为>,将结束日期设置为<?此外,在使用存储过程而不是在任意点演播室中使用select数据库方法时,是否可以定义查询参数?
发布于 2022-10-27 18:31:35
Mule 4中的操作(即流中的框)可以有多个输入(有效载荷、变量、属性)和1个输出,但它们应该是相互独立的。数据库查询操作不关心它的输入是来自查询参数还是来自其他地方。您需要显式地将输入映射到查询中的参数。
一旦您有了参数,就需要在SQL查询中使用它们。通常,这意味着添加大于或小于比较的值,以确保值在范围内。或者相同的包含也等于,如果业务逻辑需要的话。
根据数据类型和SQL方言,您可能需要将输入转换为与列的数据库类型兼容的日期格式。这里的输入是字符串,因为查询参数总是被解析到的。在DataWeave或SQL查询中,您需要了解和查看如何转换列类型。
例如:
<db:select config-ref="dbConfig">
<db:sql>SELECT ... WHERE dp.Nid = 405 AND fs.DDate >= :StartDate AND fs.DDate <= :StartDate</db:sql>
<db:input-parameters>
#[{
StartDate : attributes.queryParams.StartDate,
EndDate : attributes.queryParams.EndDate
}]
</db:input-parameters>
</db:select>https://stackoverflow.com/questions/74224586
复制相似问题