目次
はじめに
Verticaでは業界標準の「SQL99」に準拠しているため、汎用的な関数をそのままお使い頂くことが可能です。この記事では日付データの扱い方について関数を使用した例をご紹介します。
関数を使用して日付の差分を取得する場合
以下のようにDATEDIFF関数を利用することで差分を求めることができます。例1:今日(8/6)から1/1の日付の差分を取得する場合
以下例のようにVerticaではTO_DATE関数も利用できるので、文字型の日付データを扱う場合には参考にしてください。
1 2 3 4 5 |
dbadmin=> SELECT DATEDIFF('day', TO_DATE('01-01-2018','MM-DD-YYYY'),CURRENT_DATE); datediff ---------- 217 (1 row) |
例2:今月末(8/31)から1/1の日付の差分を取得する場合
CURRENT_DATEにLAST_DAY関数を組み合わせると当月の最終日を取得できます。
1 2 3 4 5 |
dbadmin=> SELECT DATEDIFF('day', TO_DATE('01-01-2018','MM-DD-YYYY'), LAST_DAY(CURRENT_DATE)); datediff ---------- 242 (1 row) |
加算・減算などの計算式を用いて算出する場合
関数を使用せずとも「+」や「-」を使用することで日付を加算、減算することが可能です。例1:今日(8/6)から14日後の日付を取得する場合
1 2 3 4 5 |
dbadmin=> SELECT CURRENT_DATE + 14 AS day; day ------------ 2018-08-20 (1 row) |
以下SQL文でも同様の結果を得られます。
1 2 3 4 5 |
dbadmin=> SELECT TO_DATE('06-08-2018','MM-DD-YYYY') + 14 AS day; day ------------ 2018-06-22 (1 row) |
例2:今月末(8/31)から1000日前の日付の取得する場合
1 2 3 4 5 |
dbadmin=> SELECT LAST_DAY(CURRENT_DATE) - 1000 AS day; day ------------ 2015-12-05 (1 row) |
以下SQL文でも同様の結果を得られます。
1 2 3 4 5 |
dbadmin=> SELECT TO_DATE('08-31-2018','MM-DD-YYYY') -1000 AS day; day ------------ 2015-12-05 (1 row) |
まとめ
上記の通り一般的なSQL/関数を用いてデータを操作することができます。また、JDBC/ODBC/ADO.netなどの各ドライバにも対応しているため、BIツールやETLツールとの連携もスムーズです。汎用データベースとの関数互換表などもご用意していますので、是非Verticaをお試しください。ダウンロードはこちらから。
Vertica Community Editionのダウンロード
「はじめてのVertica」ダウンロードのご案内
http://vertica-tech.ashisuto.co.jp/first-step-guide-for-vertica/