Baserow 公式不接受正确形式的参数

问题描述 投票:0回答:1

我有一个曾经有效的公式现在给了我一个错误:

if(
    AND(
        AND(
            date_diff('dd', now(), field('Echeance')) < 31,
            NOT(isblank(field('Echeance')))
        ),
        isblank(field('FAIT'))
    ),
    TRUE,
    FALSE
)

该公式计算现在与名为“Echeance”的列中的日期之间的日期差异,如果差异小于 31 天且“Echeance”和“FAIT”列不为空,则返回 TRUE。

现在,我收到以下错误:date_diff 的参数 3 不是日期。

公式曾经有效,我只更改了“Echeance”的公式,但它仍然是一个日期。

‘Echeance’是以下公式的结果:

if(
    isblank(field('Durée')),
    '',
    date_interval(field('Durée')) + field('Date')
)

错误。

enter image description here

所以它要么是空白,要么是日期。我不明白为什么它突然不再被视为日期,或者某些单元格为空白的事实现在被视为一个问题。

我试过这个:

if(
    AND(
        AND(
            if(
                isblank(field('Echeance')),
                ' ',
                date_diff('dd', now(), field('Echeance'))
            ) < 31,
            NOT(isblank(field('Echeance')))
        ),
        isblank(field('FAIT'))
    ),
    TRUE,
    FALSE
)

也许错误来自于“Echeance”为空时,但它给了我另一个错误,说它不期望“Echeance”作为 date_diff 的第三个参数,而是期望一个“)”,这也没有意义。

database database-design
1个回答
0
投票

我最终自己解决了这个问题:

这里是最终代码:

if(
    and(
        not(isblank(field('Echeance'))),
        and(
            date_diff('day', now(), todate(field('Echeance'), 'DD-MM-YYYY')) < 31,
            isblank(field('FAIT'))
        )
    ),
    true,
    false
)

这确实是对“Echeance”列中的空白单元格所做的。之后我不必更改其公式。

感谢所有阅读我的帖子并试图提供帮助的人。

© www.soinside.com 2019 - 2024. All rights reserved.