日時変換 - %TODATETIME
レプリケーション中に CDC Replication によって数値または文字データ・タイプが日時データ・タイプに変換されるようにする場合、この関数を使用します。
世紀のないパック数値、ゾーン数値、または文字形式から、世紀のある日時または文字タイプ値に日付を変換できます。パック数値、ゾーン数値、または文字形式から、世紀のある日時または文字タイプ値に時刻データ・タイプを変換することもできます。
注: CDC Replication Engine for DB2® for i は、この関数をサポートしていません。
構文
%TODATETIME (date, "type", time)
パラメーター
- date
- 入力日を指定します。date が文字ストリングを含む列の名前である場合、そのストリングの長さは、type で指定された形式の長さと一致していなければなりません。 長さがこれ以外の値である場合、CDC Replication はエラーを生成します。
- この関数によって戻される値については、以下のことに注意してください。
- date に NULL を指定した場合、この関数は NULL を返します。
- date の構文解析中に CDC Replication でエラーが発生した場合、この関数は「1901-01-01」を返します。
- date に「DATE」を指定した場合、この関数はタイム・スタンプを返します。
注: 「-」および「/」の文字を指定した場合、これらの文字は CDC Replication によって値が評価される前に除去されます。表 1. 日付の入力形式 type 値 date の長さ *YMD (yymmdd) 6 桁 *MDY (mmddyy) 6 桁 *DMY (ddmmyy) 6 桁 *YYMD (ccyymmdd) 8 桁 *CYMD (cyymmdd) 7 桁 *JUL (yyjjj) 6 桁 *CJUL (cyyjjj) 6 桁 *YJUL (ccyyjjj) 7 桁 - type
- 入力日付の形式を指定します。このパラメーターの値は二重引用符で囲んでください。
- *YMD
- 入力形式を yymmdd に指定します。
- *MDY
- 入力形式を mmddyy に指定します。
- *DMY
- 入力形式を ddmmyy に指定します。
- *YYMD
- - 入力形式を ccyymmdd に指定します。cc は世紀を表します。
- *CYMD
- 入力形式を cyymmdd に指定します。c は世紀を表します。c の値が 0 の場合、20 世紀を表します。その他のすべての値は、21 世紀を表します。
- *JUL
- 入力形式を yyjjj に指定します。jjj は日の暦年内での順序番号を表します。jjj は、1 月 1 日を表す 1 から、うるう年の 12 月 31 日を表す 366 の間にする必要があります。jjj 値が 100 未満の場合、1 つまたは 2 つの先行ゼロを指定する必要があります。例えば、2 月 4 日のユリウス日付は 035 で、これはその年の 35 番目の日を表します。
- *CJUL
- 入力形式を cyyjjj に指定します。c は世紀を表します。c の値が 0 の場合、20 世紀を表します。その他の値はすべて、21 世紀を表します。
- *YJUL
- 入力形式を ccyyjjj に指定します。cc は世紀を表します。
- time
- 入力時刻を指定します。次の表は、入力時刻のデータ・タイプに応じた、このパラメーターの長さと形式を示しています。
表 2. time パラメーターの長さとフォーマット (入力時刻のデータ・タイプによって異なる) データ・タイプ 長さ 形式 Numeric 5 桁 HMMSS. 例えば、71500 は AM 7:15 を表します。 6 桁 HHMMSS. 例えば、223000 は PM 10:30 を表します。 文字 8 桁 "HH:MM:SS"。このパラメーターの値は、二重引用符で囲まなければなりません。例えば、"10:30:00" は AM 10:30 を表します。
結果のデータ・タイプ
標準的な ISO (国際標準化機構) 形式の日付。 入力日付に無効な年、月または日の値が含まれている場合は、%TODATETIME 関数は日のデフォルト値 1901-01-01 を戻します。
例
下表に、この関数の例を示します。
以下の例では、戻される ISO 時刻値の区切り記号としてコロン (:) を使用しています。
ご使用の環境によっては、出力日付の年月日を区切るために使用される文字が異なる場合があります。
また、出力時刻の時分秒を区切るために使用される文字も異なる場合があります。
| 日付の入力データ (date) | 形式の入力データ (type) | 入力時刻 (time) | 結果 |
|---|---|---|---|
| 891102 | *YMD | 112500 | 1989-11-02 11:25:00 (1989 年 11 月 2 日 AM 11:25) |
| 030496 | *MDY | "13:42:00" | 1996-03-04 13:42:00 (1996 年 3 月 4 日 PM 1:42) |
| 000000 | *MDY | "10:55:00" | 1901-01-01 10:55:00 (1901 年 1 月 1 日 AM 10:55) |
| 210570 | *DMY | "09:05:00" | 1970-05-21 09:05:00 (1970 年 5 月 21 日 AM 9:05) |
| 20100902 | *YYMD | 023000 | 2010-09-02 02:30:00 (2010 年 2 月 9 日 AM 2:30) |
| 1060723 | *CYMD | 193300 | 2006-07-23 19:33:00 (2006 年 7 月 23 日 PM 7:33) |
| 91060 | *JUL | 220100 | 1991-03-01 22:01:00 (1991 年 3 月 1 日 PM 10:01) |
| 097106 | *CJUL | 043500 | 1997-04-16 04:35:00 (1997 年 4 月 16 日 AM 4:35) |
| 2002092 | *YJUL | "17:15:00" | 2002-04-02 17:15:00 (2002 年 4 月 2 日 PM 5:15) |