6.8.3.3 PGQL問合せでのINTERVALリテラルの使用
PGQL問合せでINTERVAL
リテラルを使用すると、PGQL Temporalデータ型に対する間隔の加算または減算をそれぞれ実行できます。
INTERVAL
型は期間で、キーワード"INTERVAL
"とそれに続く数値および時間単位で構成されます。たとえば、INTERVAL '1' DAY
となります。
次の表に、INTERVAL
値でサポートされる有効な時間単位を示します。
表6-4 INTERVAL
値のフィールドの有効な値
キーワード | サポートされる有効な値 |
---|---|
YEAR |
<間隔先行フィールド精度>以外は制約なし |
MONTH |
月(年単位) (0-11) |
DAY |
<間隔先行フィールド精度>以外は制約なし |
HOUR |
時間(日単位)(0-23) |
MINUTE |
分(時間単位) (0-59) |
SECOND |
秒(分単位) (0-59.999...) |
次のINTERVAL
操作がTemporalデータ型でサポートされています。
TEMPORAL TYPE + INTERVAL
INTERVAL + TEMPORAL TYPE
TEMPORAL TYPE - INTERVAL
たとえば、次のPGQL問合せでは、n.birthdate + INTERVAL '20' YEAR > TIMESTAMP '2000-01-01 00:00:00'
である個人を取得します。
opg4j> graph.queryPgql("SELECT n.name, n.birthdate FROM MATCH (n:Person) WHERE n.birthdate + INTERVAL '20' YEAR > TIMESTAMP '2000-01-01 00:00:00'").print()
graph.queryPgql("SELECT n.name, n.birthdate FROM MATCH (n:Person) WHERE n.birthdate + INTERVAL '20' YEAR > TIMESTAMP '2000-01-01 00:00:00'").print();
graph.query_pgql("SELECT n.name, n.birthdate FROM MATCH (n:Person) WHERE n.birthdate + INTERVAL '20' YEAR > TIMESTAMP '2000-01-01 00:00:00'").print()
実行時に、問合せ出力は次のようになります。
+--------------------------+
| name | birthdate |
+--------------------------+
| Mary | 1982-09-25T00:00 |
| Alice | 1987-02-01T00:00 |
+--------------------------+