OpenText Analytics Database 旧Vertica

技術情報サイト

Analytics Database

Verticaで日付の差分を取得したり加算・減算する方法

公開日:
更新日:
基本操作
#関数

はじめに

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 本記事を公開