はじめに
Verticaでは業界標準の「SQL99」に準拠しているため、汎用的な関数をそのままお使い頂くことが可能です。
この記事では日付データの扱い方について関数を使用した例をご紹介します。
関数を使用して日付の差分を取得する場合
以下のようにDATEDIFF関数を利用することで差分を求めることができます。
例1:今日(4/16)から1/1の日付の差分を取得する場合
以下例のようにVerticaではTO_DATE関数も利用できるので、文字型の日付データを扱う場合には参考にしてください。
dbadmin=> SELECT DATEDIFF('day', TO_DATE('01-01-2026','MM-DD-YYYY'),CURRENT_DATE);
datediff
----------
105
(1 row)例2:今月末(4/30)から1/1の日付の差分を取得する場合
CURRENT_DATEにLAST_DAY関数を組み合わせると当月の最終日を取得できます。
dbadmin=> SELECT DATEDIFF('day', TO_DATE('01-01-2026','MM-DD-YYYY'), LAST_DAY(CURRENT_DATE));
datediff
----------
119
(1 row)加算・減算などの計算式を用いて算出する場合
関数を使用せずとも「+」や「-」を使用することで日付を加算、減算することが可能です。
例1:今日(4/16)から14日後の日付を取得する場合
dbadmin=> SELECT CURRENT_DATE + 14 AS day;
day
------------
2026-04-30
(1 row)以下SQL文でも同様の結果を得られます。
dbadmin=> SELECT TO_DATE('04-16-2026','MM-DD-YYYY') + 14 AS day;
day
------------
2026-04-30
(1 row)例2:今月末(4/30)から1000日前の日付の取得する場合
dbadmin=> SELECT LAST_DAY(CURRENT_DATE) - 1000 AS day;
day
------------
2023-08-04
(1 row)以下SQL文でも同様の結果を得られます。
dbadmin=> SELECT TO_DATE('04-30-2026','MM-DD-YYYY') -1000 AS day;
day
------------
2023-08-04
(1 row)まとめ
上記の通り一般的なSQL/関数を用いてデータを操作することができます。また、JDBC/ODBC/ADO.netなどの各ドライバにも対応しているため、BIツールやETLツールとの連携もスムーズです。
汎用データベースとの関数互換表などもご用意していますので、是非Verticaをお試しください。ダウンロードはこちらから。
OpenText Analytics Databaseを使ってみる
https://www.ashisuto.co.jp/product/category/database/vertica/download/#otad-trial
Trial Licenseの入手方法(26.1)
https://www.ashisuto.co.jp/cm/analytics-database/trial_license.html
検証バージョンについて
この記事の内容はVertica 26.1で確認しています。
更新履歴
2016/04/28 バージョン26.1用に改訂、
「はじめてのVertica」とCommunity Editionの記載を削除、
日本語ガイドとTrial Licenseへの案内を追記
2016/01/21 本記事を公開