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 + INTERVALINTERVAL + TEMPORAL TYPETEMPORAL 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 |
+--------------------------+