目次

Search

  1. はじめに
  2. トランスフォーメーション言語
  3. 定数
  4. 演算子
  5. 変数
  6. 日付
  7. 関数
  8. カスタム関数の作成
  9. カスタム関数APIリファレンス

トランスフォーメーション言語リファレンス

トランスフォーメーション言語リファレンス

SET_DATE_PART

SET_DATE_PART

Date/Time値の一部を指定した値に設定します。SET_DATE_PARTを使用して、日付の以下の部分を変更できます。
  • 年。
    value
    引数に正の整数を入力することで、年を変更します。 Y、YY、YYY、YYYYのいずれかを年のフォーマット文字列として使用し、年を設定します。たとえば、次の式は、SHIP_DATEポート内の全ての日付における年を2001に変更します。
    SET_DATE_PART( SHIP_DATE, 'YY', 2001 )
  • 月。
    value
    引数に1から12(1月は1、12月は12)までの正の整数を入力することにより、月を変更します。 MM、MON、MONTHのいずれかを月のフォーマット文字列として使用し、月を設定します。たとえば、次の式はSHIP_DATEポートのすべての日付に対して、月を10月に変更します。
    SET_DATE_PART( SHIP_DATE, 'MONTH', 10 )
  • 日。
    1から31までの正の整数(日数が31日未満の月である2月、4月、6月、9月、11月を除く)を
    value
    引数に入力することにより、日を変更します。 D、DD、DDD、DY、DAYのいずれかを日のフォーマット文字列として使用し、日を設定します。たとえば、次の式はSHIP_DATEポートのすべての日付に対して、日を10日に変更します。
    SET_DATE_PART( SHIP_DATE, 'DD', 10 )
  • 時間。
    0から24までの正の整数(0=12AM、12=12PM、24=12AM)を
    value
    引数に入力することにより、時を変更します。 HH、HH12、HH24のいずれかを時のフォーマット文字列として使用し、時を設定します。たとえば、次の式はSHIP_DATEポートのすべての日付に対して、時を14:00:00(2:00:00PM)に変更します。
    SET_DATE_PART( SHIP_DATE, 'HH', 14 )
  • 分。
    0から59までの正の整数を
    value
    引数に入力することにより、分を変更します。 分の設定にはフォーマット文字列MIを使用します。たとえば、次のはSHIP_DATEポートのすべての日付に対して、分を25分に変更します。
    SET_DATE_PART( SHIP_DATE, 'MI', 25 )
  • 秒。
    0から59までの正の整数を
    value
    引数に入力することにより、秒を変更します。 秒の設定にはSSフォーマット文字列を使用します。たとえば、次の式は、SHIP_DATEポート内のすべての日付における秒を59に変更します。
    SET_DATE_PART( SHIP_DATE, 'SS', 59 )
  • ミリ秒
    value
    引数に0から999までの正の整数を入力することにより、分を変更します。秒の設定にはMSフォーマット文字列を使用します。たとえば、次の式はSHIP_DATEポートのすべての日付に対して、分を125分に変更します。
    SET_DATE_PART( SHIP_DATE, 'MS', 125 )
  • マイクロ秒。
    1000から999999までの正の整数を
    value
    引数に入力することにより、マイクロ秒を変更します。 秒の設定にはUSフォーマット文字列を使用します。たとえば、次のはSHIP_DATEポートのすべての日付に対して、分を12555分に変更します。
    SET_DATE_PART( SHIP_DATE, 'US', 12555 )
  • ナノ秒。
    1000000から999999999までの正の整数を
    value
    引数に入力することにより、ナノ秒を変更します。 秒の設定にはNSフォーマット文字列を使用します。たとえば、式<>はSHIP_DATEポートのすべての日付に対して、分を12555555分に変更します。
    SET_DATE_PART( SHIP_DATE, 'NS', 12555555 )

構文

SET_DATE_PART( 
date
,
format
,
value
 )
以下の表に、このコマンドの引数を示します。
引数
必須/
オプション
説明
日付
必須
Date/Timeデータ型。変更したい日付です。有効なトランスフォーメーション式を必要に応じて入力できます。
形式
必須
日付の中で変更したい場所を指定するフォーマット文字列。フォーマット文字列は大文字と小文字を区別しません。
value
必須
日付内の指定した部分に代入される正の整数値。この整数は、変更したい日付の部分に対して有効な値でなければなりません。不適切な値(2月30日など)を入力すると、セッションが失敗します。

戻り値

指定した部分が変更された日付を、元の日付と同じ形式で返します。
関数にNULL値を渡した場合はNULLです。

以下の式は、DATE_PROMISEDポートの各日付に対して、時を午後4時に変更します。
SET_DATE_PART( DATE_PROMISED, 'HH', 16 ) SET_DATE_PART( DATE_PROMISED, 'HH12', 16 ) SET_DATE_PART( DATE_PROMISED, 'HH24', 16 )
DATE_PROMISED
RETURN VALUE
Jan 1 1997 12:15:56AM
Jan 1 1997 4:15:56PM
Feb 13 1997 2:30:01AM
Feb 13 1997 4:30:01PM
Mar 31 1997 5:10:15PM
Mar 31 1997 4:10:15PM
Dec 12 1997 8:07:33AM
Dec 12 1997 4:07:33PM
NULL
NULL
以下の式は、DATE_PROMISEDポートの日付に対して、月を6月に変更します。
PowerCenter統合サービス
は、存在しない日付を作成しようとした場合(5月31日を6月31日に変更しようとした場合など)、エラーを表示します。
SET_DATE_PART( DATE_PROMISED, 'MM', 6 ) SET_DATE_PART( DATE_PROMISED, 'MON', 6 ) SET_DATE_PART( DATE_PROMISED, 'MONTH', 6 )
DATE_PROMISED
RETURN VALUE
Jan 1 1997 12:15:56AM
Jun 1 1997 12:15:56AM
Feb 13 1997 2:30:01AM
Jun 13 1997 2:30:01AM
Mar 31 1997 5:10:15PM
Error. Integration Service doesn't write row.
Dec 12 1997 8:07:33AM
Jun 12 1997 8:07:33AM
NULL
NULL
以下の式は、DATE_PROMISEDポートの日付に対して、年を2000年に変更します。
SET_DATE_PART( DATE_PROMISED, 'Y', 2000 ) SET_DATE_PART( DATE_PROMISED, 'YY', 2000 ) SET_DATE_PART( DATE_PROMISED, 'YYY', 2000 ) SET_DATE_PART( DATE_PROMISED, 'YYYY', 2000 )
DATE_PROMISED
RETURN VALUE
Jan 1 1997 12:15:56AM
Jan 1 2000 12:15:56AM
Feb 13 1997 2:30:01AM
Feb 13 2000 2:30:01AM
Mar 31 1997 5:10:15PM
Mar 31 2000 5:10:15PM
Dec 12 1997 8:07:33AM
Dec 12 2000 4:07:33PM
NULL
NULL

ヒント

日付の中の複数の部分を一度に変更したい場合は、
date
引数に複数のSET_DATE_PART関数をネストすることができます。たとえば、DATE_ENTEREDポート内のすべての日付を1998年7月1日に変更したい場合、次のような式を記述できます。
SET_DATE_PART( SET_DATE_PART( SET_DATE_PART( DATE_ENTERED, 'YYYY', 1998),MM', 7), 'DD', 1)