如何按日期范围值过滤执行查询?

How to filter in execute query by Date range value?

我必须在 executeQuery 中进行 Query ,并且我必须按日期字段进行过滤, 我的代码是:

public void executeQuery()
{
    utcDateTime dateUTC, datenullUTC;
    query q = new Query();

    QueryBuildRange qbr;
    QueryBuildDataSource qbds ;
    QueryRun queryRun;

    dateUTC = DateTimeUtil::newDateTime(_dateValue, 0, DateTimeUtil::getCompanyTimeZone());

    qbds = q.addDataSource(tableNum(MCRCustCategory) ); 

    qbds.addRange(fieldNum(MCRCustCategory, ValidTo)).value(strFmt ("> %1", dateUTC) );

    queryRun = new QueryRun (q);

    super();
}

在我的 init 中,我调用 executeQuery,但不在我的表单中进行过滤。

如何使用Range中的日期?

谢谢大家,

尽情享受吧!

你使用了一个 table,它使用了 date effective。你假设你必须自己做选择,这是不正确的。

改用这个:

public void executeQuery()
{
    this.queryBuildDataSource().validTimeStateAsOfDate(_dateValue);
    super();
}

如果您有间隔,请改用它:

this.queryBuildDataSource().validTimeStateDateRange(fromDate, toDate)

您在问题中提供的代码根本没有做任何事情,因为表单没有使用您构建的查询。反正你构建了错误的查询!

这篇blog post解释的很简洁。