是否可以在 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中,不要使用timestamp
或date
关键字,而只使用您以这些格式之一编写的日期,并注意 - 没有撇号!
您可以在免费书籍《开发应用程序》中找到示例例如,在 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