在保存的搜索公式中设置日期范围过滤器

setting date range filter in saved search formula

我正在寻找有关如何在保存的搜索公式中编写日期范围过滤器的指导。例如,下面是我到目前为止看到的某种类型的销售情况,但还需要添加日期过滤器,以便只获得今年迄今为止的销售情况。我知道我可以在过滤器部分设置日期过滤器,但我还需要在此报告中添加其他列,这些列将显示不同类型和日期的交易金额。在此先感谢您的任何输入。 公式: CASE WHEN {transaction.type} = 'Invoice' AND {transaction.custbody1} = 'Direct' THEN {transaction.amount} end

您可以使用 SQL TO_CHAR 函数对日期的 return 文本部分进行比较,以便与 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 return 是数字而不是文本。

CASE WHEN {transaction.type} = 'Invoice' 
        AND {transaction.custbody1} = 'Direct' 
        AND EXTRACT(YEAR from {trandate}) = EXTRACT(YEAR FROM sysdate)
    THEN {transaction.amount} 
END

当您想要合并日期的不同部分时,您可能会发现 TO_CHAR 更易于使用。例如: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)