日付および時刻の関数
CLEM には、日付や時間を表す文字列変数の日付と時間ストレージのフィールドを操作する関数が用意されています。使用する日付と時間の書式は、ストリームごとに異なり、「ストリームのプロパティー」ダイアログ・ボックスで指定します。日付と時間の関数は、現在選択されている形式に従って、日付と時間の文字列を解析します。
日付に 2 桁だけを使用する (世紀を指定しない) 年を指定すると、IBM® SPSS® Modeler では、「ストリームのプロパティー」ダイアログ・ボックスで指定されているデフォルトの世紀が使用されます。
注: データ関数が SQL または IBM SPSS Analytic Server にプッシュバックされる場合、Analytic Server データ・ソースに続くブランチでは、そのデータ内の日付形式の文字列 (to_date) は、SPSS Modeler ストリームに指定されている日付形式に一致している必要があります。
| 関数 | 結果 | 説明 |
|---|---|---|
@TODAY |
文字列 | 「ストリームのプロパティー」ダイアログ・ボックスで「日/分をロールオーバー」を選択している場合、この関数は現在の日付形式を使用して、現在の日付を文字列として返します。2 桁の日付形式を使用しており、 「日/分をロールオーバー」を選択していない場合は、現在のサーバーの $null$ を返します。 |
to_time(ITEM) |
Time | 指定されたフィールドのストレージを時間に変換します。 |
to_date(ITEM) |
Date | 指定されたフィールドのストレージを日付に変換します。 |
to_timestamp(ITEM) |
タイム・スタンプ | 指定されたフィールドのストレージをタイムスタンプに変換します。 |
to_datetime(ITEM) |
Datetime | 指定されたフィールドのストレージを日付、時間またはタイムスタンプ値に変換します。 |
datetime_date(ITEM) |
Date | 数値、文字列またはタイムスタンプの日付値を返します数値(秒単位)を日付をへ変換しなおすことができるのは、この関数だけです。ITEM が文字列の場合は、現在のデータ形式で文字列を解析することにより日付を作成します。
この関数が正常に機能するためには、「ストリームのプロパティー」ダイアログ・ボックスの「日付の形式」に、正しい値が指定されていなければなりません。ITEM が数値の場合は、基準日 (または紀元) からの秒数として解釈します。日付の端数は切り捨てられます。ITEM がタイムスタンプの場合は、日付をタイムスタンプの一部として返します。ITEM が日付の場合は、変更せずに返します。 |
date_before(DATE1, DATE2) |
Boolean | DATE1 が DATE2 より前の日付またはタイムスタンプの場合に true を返します。それ以外の場合、この関数は 0 の値を返します。 |
date_days_difference(DATE1, DATE2) |
整数 | 日付またはタイムスタンプ DATE1 から日付またはタイムスタンプ DATE2 までの日数を整数で返します。DATE2 が DATE1 よりも前の場合、この関数は負の数値を返します。 |
date_in_days(DATE) |
整数 | 基準日から DATE で表される日付またはタイムスタンプまでの日数を整数で返します。DATE が基準日より前の場合、この関数は負の数値を返します。 計算を適正に行うには、有効な日付を指定する必要があります。例えば、日付として 2001 年 2 月 29 日を指定することはできません。2001 年は閏年ではないので、この日付は存在しません。 |
date_in_months(DATE) |
実数 | 基準日から DATE で表される日付またはタイムスタンプまでの月数を実数で返します。これは、1 カ月を 30.4375 日と仮定した近似値になります。DATE が基準日より前の場合、この関数は負の数値を返します。 計算を適正に行うには、有効な日付を指定する必要があります。例えば、日付として 2001 年 2 月 29 日を指定することはできません。2001 年は閏年ではないので、この日付は存在しません。 |
date_in_weeks(DATE) |
実数 | 基準日から DATE で表される日付またはタイムスタンプまでの週数を実数で返します。ここでは、1 週間を 7.0 日と仮定しています。DATE が基準日より前の場合、この関数は負の数値を返します。 計算を適正に行うには、有効な日付を指定する必要があります。例えば、日付として 2001 年 2 月 29 日を指定することはできません。2001 年は閏年ではないので、この日付は存在しません。 |
date_in_years(DATE) |
実数 | 基準日から DATE で表される日付またはタイムスタンプまでの年数を実数で返します。これは、1 年 365.25 日を基準とした近似値になります。DATE が基準日より前の場合、この関数は負の数値を返します。 計算を適正に行うには、有効な日付を指定する必要があります。例えば、日付として 2001 年 2 月 29 日を指定することはできません。2001 年は閏年ではないので、この日付は存在しません。 |
date_months_difference (DATE1, DATE2) |
実数 | 日付またはタイムスタンプ DATE1 から日付またはタイムスタンプ DATE2 までの月数を実数で返します。これは、1 カ月を 30.4375 日と仮定した近似値になります。DATE2 が DATE1 よりも前の場合、この関数は負の数値を返します。 |
datetime_date(YEAR, MONTH, DAY) |
Date | YEAR、MONTH、および DAY の日付値を作成します。引数は整数でなければなりません。 |
datetime_day(DATE) |
整数 | 指定されたDATE またはタイムスタンプから、日付を返します。結果は 1 から 31 の範囲の整数になります。 |
datetime_day_name(DAY) |
文字列 | 指定された DAY のフルネームを返します。引数は、1 (日曜) から 7 (土曜) の範囲の整数でなければなりません。 |
datetime_hour(TIME) |
整数 | TIME またはタイムスタンプから時間を返します。結果は 0 から 23 の範囲の整数になります。 |
datetime_in_seconds(TIME) |
実数 | TIME に保存された秒の部分を返します。 |
datetime_in_seconds(DATE)、datetime_in_seconds(DATETIME) |
実数 | 現在の DATE または DATETIME と基準日の間の差 (1900-01-01) から集計した数値を秒に変換して返します。 |
datetime_minute(TIME) |
整数 | TIME またはタイムスタンプから分を返します。結果は 0 から 59 の範囲の整数になります。 |
datetime_month(DATE) |
整数 | DATE またはタイムスタンプから月を返します。結果は 1 から 12 の範囲の整数になります。 |
datetime_month_name (MONTH) |
文字列 | 指定された MONTH のフルネームを返します。引数は、1 から 12の範囲の整数でなければなりません。 |
datetime_now |
タイム・スタンプ | 現在の時刻をタイムスタンプとして返します。 |
datetime_second(TIME) |
整数 | TIME またはタイムスタンプから秒を返します。結果は 0 から 59 の範囲の整数になります。 |
datetime_day_short_name (DAY) |
文字列 | DAY の名前を省略形で返します。引数は、1 (日曜) から 7 (土曜) の範囲の整数でなければなりません。 |
datetime_month_short_name (MONTH) |
文字列 | MONTH の名前を省略形で返します。引数は、1 から 12の範囲の整数でなければなりません。 |
datetime_time(HOUR, MINUTE, SECOND) |
Time | 指定された HOUR、MINUTE、および SECOND の時間値を返します。引数は整数でなければなりません。 |
datetime_time(ITEM) |
Time | ITEM の時間値を返します。 |
datetime_timestamp(YEAR, MONTH, DAY,
HOUR, MINUTE, SECOND) |
タイム・スタンプ | 与えられた YEAR、MONTH、DAY、HOUR、MINUTE、および SECOND のタイムスタンプ値を返します。 |
datetime_timestamp(DATE, TIME) |
タイム・スタンプ | DATE および TIME のタイムスタンプ値を返します。 |
datetime_timestamp (NUMBER) |
タイム・スタンプ | 与えられた秒数のタイムスタンプ値を返します。 |
datetime_weekday(DATE) |
整数 | 指定されたDATE またはタイムスタンプから、曜日を返します。 |
datetime_year(DATE) |
整数 | DATE またはタイムスタンプから年を返します。結果は 2002 のような整数になります。 |
date_weeks_difference (DATE1,
DATE2) |
実数 | 日付またはタイムスタンプ DATE1 から日付またはタイムスタンプ DATE2 までの週数を実数で返します。ここでは、1 週間を 7.0 日と仮定しています。DATE2 が DATE1 よりも前の場合、この関数は負の数値を返します。 |
date_years_difference (DATE1, DATE2) |
実数 | 日付またはタイムスタンプ DATE1 から日付またはタイムスタンプ DATE2 までの年数を実数で返します。これは、1 年 365.25 日を基準とした近似値になります。DATE2 が DATE1 よりも前の場合、この関数は負の数値を返します。 |
date_from_ywd(YEAR, WEEK, DAY) |
整数 | 年、年の週、および曜日を、ISO 8601 標準を使用して日付に変換します。 |
date_iso_day(DATE) |
整数 | ISO 8601 標準を使用して、日付の曜日を返します。 |
date_iso_week(DATE) |
整数 | ISO 8601 標準を使用して、日付から年の週を返します。 |
date_iso_year(DATE) |
整数 | ISO 8601 標準を使用して、日付から年を返します。 |
time_before(TIME1, TIME2) |
Boolean | TIME1 が TIME2 より前の時間またはタイプスタンプの場合に真を返します。それ以外の場合、この関数は 0 の値を返します。 |
time_hours_difference (TIME1, TIME2) |
実数 | 時間またはタイプスタンプ TIME1 と TIME2 間の時間差 (時間) を実数で返します。「ストリームのプロパティー」ダイアログ・ボックスで 「日/分をロールオーバー」 を選択している場合、TIME1 の値の方が大きいと、その値は前の日付を参照します。ロールオーバー・オプションをオンにしていない場合、TIME1 の値の方が大きいと、返される値は負になります。 |
time_in_hours(TIME) |
実数 | TIME で表される時間を実数で返します。例えば、時間の形式 HHMM では、式 time_in_hours('0130') は 1.5 として評価されます。TIME は時間またはタイムスタンプを示します。 |
time_in_mins(TIME) |
実数 | TIME で表される分を実数で返します。TIME は時間またはタイムスタンプを示します。 |
time_in_secs(TIME) |
整数 | TIME で表される秒を整数で返します。TIME は時間またはタイムスタンプを示します。 |
time_mins_difference(TIME1, TIME2) |
実数 | 時間またはタイプスタンプ TIME1 と TIME2 間の時間差 (分) を実数で返します。「ストリームのプロパティー」ダイアログ・ボックスで 「日/分をロールオーバー」 を選択している場合、TIME1 の値の方が大きいと、その値は前の日 (または、現在の形式で分と秒だけが指定されている場合は前の時間) を参照します 。ロールオーバー・オプションをオンにしていない場合、TIME1 の値の方が大きいと、返される値は負になります。 |
time_secs_difference(TIME1, TIME2) |
整数 | TIME1と TIME2 の時間またはタイムスタンプの差異を秒で返します。「ストリームのプロパティー」ダイアログ・ボックスで 「日/分をロールオーバー」 を選択している場合、TIME1 の値の方が大きいと、その値は前の日 (または、現在の形式で分と秒だけが指定されている場合は前の時間) を参照します 。ロールオーバー・オプションをオンにしていない場合、TIME1 の値の方が大きいと、返される値は負になります。 |