17.10 - 日、月、年、時間、分、または秒が省略された文字列 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - データ タイプおよびリテラル

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1143-171K-JPN
Language
日本語 (日本)

文字からTIMESTAMPに変換される文字列で日、月、年、時間、分、または秒が省略されている場合、システムはターゲットのTIMESTAMP値のデフォルト値を使用します。

文字列から省略されているもの システムが使用する値
値1 (月の最初の日)。
値1 (1月)。
現在の年。
時間 値0。

次のテーブルについて考察します。

CREATE TABLE timestamp_log
(id INTEGER, start_ts TIMESTAMP, end_ts TIMESTAMP);

次のINSERT文は、2つの文字列をTIMESTAMP値に変換します。どちらの文字列も時間、分、および秒が省略されています。さらに、最初の文字列では日が省略されており、2番目の文字列では月が省略されています。

INSERT timestamp_log
   (1001
   ,CAST ('January 2006' AS TIMESTAMP FORMAT 'MMMMBYYYY')
   ,CAST ('2006-01' AS TIMESTAMP FORMAT 'YYYY-DD'));

INSERT文の結果は、以下のようになります。

SELECT * FROM timestamp_log;
         id                    start_ts                      end_ts
-----------  --------------------------  --------------------------
       1001  2006-01-01 00:00:00.000000  2006-01-01 00:00:00.000000

次に示すINSERT文では、どちらの文字列も年が省略されています。さらに、最初の文字列では時間が省略されており、2番目の文字列では分が省略されています。現在は2003年であると仮定しましょう。

INSERT timestamp_log
   (1002
   ,CAST ('January 23 04:05' AS TIMESTAMP FORMAT 'MMMMBDDBMI:SS')
   ,CAST ('01-23 04:05' AS TIMESTAMP FORMAT 'MM-DDBHH:SS'));

INSERT文の結果は、以下のようになります。

SELECT * FROM timestamp_log WHERE id = 1002;
         id                    start_ts                      end_ts
-----------  --------------------------  --------------------------
       1001  2003-01-23 00:04:05.000000  2003-01-23 04:00:05.000000