我正在寻找有关如何在保存的搜索公式中编写日期范围过滤器的一些指导。例如,下面是我到目前为止看到的某种类型的销售,但也需要添加日期过滤器,所以只获得今年迄今为止的销售。我知道我可以在过滤器部分设置日期过滤器,但我还需要在此报告中添加其他列,这些列将显示不同类型和日期的交易金额。提前感谢任何输入。 式: {transaction.type} ='发票' AND {transaction.custbody1} ='直接'那么{transaction.amount}结束
答案 0 :(得分:0)
您可以使用SQL TO_CHAR
函数返回日期的文本部分,以便与sysdate
的相应文本部分进行比较。在您给出的示例中,看起来像:
CASE WHEN {transaction.type} = 'Invoice'
AND {transaction.custbody1} = 'Direct'
AND TO_CHAR({trandate}, 'YYYY') = TO_CHAR(sysdate, 'YYYY')
THEN {transaction.amount}
END
您可以使用不同格式的相同方法来获取几乎任何日期。您还可以使用EXTRACT
在某些情况下获得更好的性能。 EXTRACT
返回一个数字而不是文本。
CASE WHEN {transaction.type} = 'Invoice'
AND {transaction.custbody1} = 'Direct'
AND EXTRACT(YEAR from {trandate}) = EXTRACT(YEAR FROM sysdate)
THEN {transaction.amount}
END
当您想要组合日期的不同部分时,您可能会发现TO_CHAR
更容易使用。 E.G。:TO_CHAR({trandate}, 'YYYY-MM') = TO_CHAR(sysdate, 'YYYY-MM')
而不是EXTRACT(YEAR from {trandate}) = EXTRACT(YEAR from sysdate) AND EXTRACT(MONTH from {trandate}) = EXTRACT(MONTH from sysdate)