Teradata-date-time-functions

提供:Dev Guides
移動先:案内検索

Teradata-日付/時刻関数

この章では、Teradataで使用可能な日付/時刻関数について説明します。

日付の保存

日付は、次の式を使用して内部的に整数として保存されます。

((YEAR - 1900) *10000) + (MONTH* 100) + DAY

次のクエリを使用して、日付の保存方法を確認できます。

SELECT CAST(CURRENT_DATE AS INTEGER);

日付は整数として格納されるため、日付に対していくつかの算術演算を実行できます。 Teradataは、これらの操作を実行する機能を提供します。

エキス

EXTRACT関数は、DATE値から日、月、年の一部を抽出します。 この関数は、TIME/TIMESTAMP値から時間、分、秒を抽出するためにも使用されます。

次の例は、日付とタイムスタンプの値から年、月、日付、時間、分、秒の値を抽出する方法を示しています。

SELECT EXTRACT(YEAR FROM CURRENT_DATE);
EXTRACT(YEAR FROM Date)
-----------------------
        2016
SELECT EXTRACT(MONTH FROM CURRENT_DATE);
EXTRACT(MONTH FROM Date)
------------------------
          1
SELECT EXTRACT(DAY FROM CURRENT_DATE);
EXTRACT(DAY FROM Date)
------------------------
          1

SELECT EXTRACT(HOUR FROM CURRENT_TIMESTAMP);
EXTRACT(HOUR FROM Current TimeStamp(6))
---------------------------------------
                 4
SELECT EXTRACT(MINUTE FROM CURRENT_TIMESTAMP);
EXTRACT(MINUTE FROM Current TimeStamp(6))
-----------------------------------------
                 54
SELECT EXTRACT(SECOND FROM CURRENT_TIMESTAMP);
EXTRACT(SECOND FROM Current TimeStamp(6))
-----------------------------------------
              27.140000

間隔

Teradataは、DATE値とTIME値で算術演算を実行するINTERVAL関数を提供します。 INTERVAL関数には2つのタイプがあります。

年月間隔

  • YEAR
  • 年月

日中の間隔

  • DAY
  • 営業時間
  • 昼間
  • 二日目
  • HOUR
  • 数時間
  • 2時間目
  • 2分前
  • 2回目

次の例では、現在の日付に3年を追加します。

SELECT CURRENT_DATE, CURRENT_DATE + INTERVAL '03' YEAR;
  Date    (Date+ 3)
--------  ---------
16/01/01   19/01/01

次の例では、現在の日付に3年と01か月を追加します。

SELECT CURRENT_DATE, CURRENT_DATE + INTERVAL '03-01' YEAR TO MONTH;
 Date     (Date+ 3-01)
--------  ------------
16/01/01    19/02/01

次の例では、01日、05時間、10分を現在のタイムスタンプに追加します。

SELECT CURRENT_TIMESTAMP,CURRENT_TIMESTAMP + INTERVAL '01 05:10' DAY TO MINUTE;
     Current TimeStamp(6)         (Current TimeStamp(6)+ 1 05:10)
--------------------------------  --------------------------------
2016-01-01 04:57:26.360000+00:00  2016-01-02 10:07:26.360000+00:00