16.20 - 日、月、年、時間、分、または秒が省略された文字列 - Teradata Vantage NewSQL Engine

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

prodname
Teradata Database
Teradata Vantage NewSQL Engine
vrm_release
16.20
category
プログラミング リファレンス
featnum
B035-1143-162K-JPN

文字から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