在 FileNet 内容引擎中使用“仅日期”查询日期时间字段



是否可以在 IBM FileNet 中仅使用 Date 字段(如 ' 2017-03-02 '(进行查询?

我已经尝试了以下语句,但它似乎不起作用

SELECT * 
FROM Table_Name 
WHERE EstimatedDate = '2017-03-02'

SELECT * 
FROM Table_Name 
WHERE EstimatedDate <= DATE '2017-03-02'

我尝试包含时间戳,以下查询有效,但我只想使用日期进行搜索,例如'2017-03-02'

SELECT * 
FROM Table_Name 
WHERE EstimatedDate <= TIMESTAMP '2017-03-02T00:00:00.000Z'

要搜索特定日期,您需要使用两个时间戳之间的范围:目标日期的开始和第二天的开始。对于今天的日期,查询将是:

SELECT * 
FROM Table_Name 
WHERE EstimatedDate >= 20180420T000000Z AND EstimatedDate < 20180421T000000Z

请注意,上述时间戳采用 UTC 时区(因此000000Z(。如果您的任务应该处理时区,则应相应地调整时间戳。例如,对于Europe/Rome(当前时区偏移量+02:00(,这将是

EstimatedDate >= 20180419T220000Z AND EstimatedDate < 20180420T220000Z

根据 IBM FileNet P8,版本 5.2 - SQL语法参考">

<literal> ::= <string_literal> | <integer> | <float> | 
              <ISO datetime> | <W3C datetime> | TRUE | FALSE | UNKNOWN | <guid>
<ISO datetime> ::= YYYYMMDDThhmmss[,ffff]Z
<W3C datetime> ::= YYYY-MM-DD[Thh:mm:ss[.ffff]][<timezone>]

因此,在FileNet P8中,不要使用timestampdate关键字,而只使用您以这些格式之一编写的日期,并注意 - 没有撇号!

您可以在免费书籍《开发应用程序》中找到示例例如,在 IBM FileNet P8 API 中,第 73 页上有Example 3-30

// Construct the sql statement
SearchSQL sql = new SearchSQL(
"select ISTOStartDate, ITSOEndDate, ITSOVehicle " +
"from ITSOIdleActivity " +
"where “ +
"ITSOVehicle = OBJECT('{D5DC8C04-2625-496f-A280-D791AFE87A73}') " +
"AND ITSOStartDate < 20090801T000000Z OR " +
"ITSOEndDate > 20090701T000000Z" );

如您所见,此示例中的日期直接编写,没有任何撇号,如下所示: 20090701T000000Z使用 <ISO datetime> 格式,您还可以使用另一种格式:2009-07-01

相关内容

  • 没有找到相关文章

最新更新