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