目次

Search

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

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

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

ROUND (Dates)

ROUND (Dates)

日付の一部分を丸めます。また、ROUNDを使って数値を丸めることもできます。
この関数は、日付の中の以下の部分を丸めることができます。
日付の年の部分を、月に基づいて丸めます。
日付の月の部分を、日に基づいて丸めます。
日付の日の部分を、時刻に基づいて丸めます。
時間
日付の時の部分を、分に基づいて丸めます。
日付の分の部分を、秒に基づいて丸めます。
日付の秒の部分を、ミリ秒に基づいて丸めます。
ミリ秒
日付のミリ秒の部分を、マイクロ秒に基づいて丸めます。
マイクロ秒
日付のマイクロ秒の部分を、ナノ秒に基づいて丸めます。
以下の表に、ROUND式で使用される条件と戻り値を示します。
条件
戻り値
月が1月-6月の場合、関数は入力した年の1月1日を返し、時刻を00:00:00.000000000に設定します。
ROUND(TO_DATE('04/16/1998 8:24:19','MM/DD/YYYY HH24:MI:SS'),'YY')
01/01/1998 00:00:00.000000000
月が7月-12月の場合、関数は次の年の1月1日を返し、時刻を00:00:00.000000000に設定します。
ROUND(TO_DATE('07/30/1998 2:30:55','MM/DD/YYYY HH24:MI:SS'),'YY')
01/01/1999 00:00:00.000000000
日が 1日-15日の場合、関数は入力した月の最初の日を返し、時刻を00:00:00.000000000に設定します。
ROUND(TO_DATE('04/15/1998 8:24:19','MM/DD/YYYY HH24:MI:SS'),'MM')
04/01/1998 00:00:00.000000000
日が16日-月の最後の日の場合、関数は次の月の最初の日を返し、時刻を00:00:00.000000000に設定します。
ROUND(TO_DATE('05/22/1998 10:15:29','MM/DD/YYYY HH24:MI:SS'),'MM')
06/01/1998 00:00:00.000000000
時刻が00:00:00(AM12時)-11:59:59AMの場合、関数は現在の日付を返し、時刻を00:00:00.000000000(AM12時)に設定します。
ROUND(TO_DATE('06/13/1998 2:30:45','MM/DD/YYYY HH24:MI:SS'),'DD')
06/13/1998 00:00:00.000000000
時刻が12:00:00(PM12時)以降の場合、関数は日付を次の日に丸めて、時刻を00:00:00.000000000(AM12時)に設定します。
ROUND(TO_DATE('06/13/1998 22:30:45','MM/DD/YYYY HH24:MI:SS'),'DD')
06/14/1998 00:00:00.000000000
時刻の分の部分が0-29の間の場合、関数は現在の時間を返し、分、秒、ミリ秒、ナノ秒を0に設定します。
ROUND(TO_DATE('04/01/1998 11:29:35','MM/DD/YYYY HH24:MI:SS'),'HH')
04/01/1998 11:00:00.000000000
分の部分が30以上の場合、関数は次の時間を返し、分、秒、ミリ秒、ナノ秒を0に設定します。
ROUND(TO_DATE('04/01/1998 13:39:00','MM/DD/YYYY HH24:MI:SS'),'HH')
04/01/1998 14:00:00.000000000
秒の部分が0-29の場合、関数は現在の分を返し、秒、ミリ秒、ナノ秒を0に設定します。
ROUND(TO_DATE('05/22/1998 10:15:29','MM/DD/YYYY HH24:MI:SS'),'MI')
05/22/1998 10:15:00.000000000
秒の部分が30-59の場合、関数は次の分を返し、秒、ミリ秒、ナノ秒を0に設定します。
ROUND(TO_DATE('05/22/1998 10:15:30','MM/DD/YYYY HH24:MI:SS'),'MI')
05/22/1998 10:16:00.000000000
ミリ秒の部分が0-499の場合、関数は現在の秒を返し、ミリ秒を0に設定します。
ROUND(TO_DATE('05/22/1998 10:15:29.499','MM/DD/YYYY HH24:MI:SS.MS'),'SS')
05/22/1998 10:15:29.000000000
ミリ秒の部分が500-999の場合、関数は次の秒を返し、ミリ秒を0に設定します。
ROUND(TO_DATE('05/22/1998 10:15:29.500','MM/DD/YYYY HH24:MI:SS.MS'),'SS')
05/22/1998 10:15:30.000000000
マイクロ秒の部分が0-499の場合、関数は現在のミリ秒を返し、マイクロ秒を0に設定します。
ROUND(TO_DATE('05/22/1998 10:15:29.498125','MM/DD/YYYY HH24:MI:SS.US'),'MS')
05/22/1998 10:15:29.498000000
マイクロ秒の部分が500-999の場合、関数は次のミリ秒を返し、マイクロ秒を0に設定します。
ROUND(TO_DATE('05/22/1998 10:15:29.498785','MM/DD/YYYY HH24:MI:SS.US'),'MS')
05/22/1998 10:15:29.499000000
ナノ秒の部分が0-499の場合、関数は現在のマイクロ秒を返し、ナノ秒を0に設定します。
ROUND(TO_DATE('05/22/1998 10:15:29.498125345','MM/DD/YYYY HH24:MI:SS.NS'),'US')
05/22/1998 10:15:29.498125000
ナノ秒の部分が500-999の場合、関数は次のマイクロ秒を返し、ナノ秒を0に設定します。
ROUND(TO_DATE('05/22/1998 10:15:29.498125876','MM/DD/YYYY HH24:MI:SS.NS'),'US')
05/22/1998 10:15:29.498126000

構文

ROUND(
date
[,
format
] )
以下の表に、このコマンドの引数を示します。
引数
必須/
オプション
説明
日付
必須
Date/Timeデータ型。丸める前に、TO_DATEをネストして文字列を日付に変換できます。
形式
オプション
正しいフォーマット文字列を入力します。これは日付の中で丸めたい部分です。日付の中の1つの部分だけを丸めることができます。フォーマット文字列を省略すると、関数は日付を最も近い日に丸めます。

戻り値

指定された部分が丸められた日付。ROUNDは元の日付と同じ形式で日付を返します。この関数の結果を、Date/Timeデータ型を持つ任意のポートにリンクすることができます。
関数にNULL値を渡した場合はNULLです。

以下の式は、DATE_SHIPPEDポートの日付の年の部分を丸めます。
ROUND( DATE_SHIPPED, 'Y' ) ROUND( DATE_SHIPPED, 'YY' ) ROUND( DATE_SHIPPED, 'YYY' ) ROUND( DATE_SHIPPED, 'YYYY' )
DATE_SHIPPED
RETURN VALUE
Jan 15 1998 2:10:30AM
Jan 1 1998 12:00:00.000000000AM
Apr 19 1998 1:31:20PM
Jan 1 1998 12:00:00.000000000AM
Dec 20 1998 3:29:55PM
Jan 1 1999 12:00:00.000000000AM
NULL
NULL
以下の式は、DATE_SHIPPEDポートの各日付の月の部分を丸めます。
ROUND( DATE_SHIPPED, 'MM' ) ROUND( DATE_SHIPPED, 'MON' ) ROUND( DATE_SHIPPED, 'MONTH' )
DATE_SHIPPED
RETURN VALUE
Jan 15 1998 2:10:30AM
Jan 1 1998 12:00:00.000000000AM
Apr 19 1998 1:31:20PM
May 1 1998 12:00:00.000000000AM
Dec 20 1998 3:29:55PM
Jan 1 1999 12:00:00.000000000AM
NULL
NULL
以下の式は、DATE_SHIPPEDポートの各日付の日の部分を丸めます。
ROUND( DATE_SHIPPED, 'D' ) ROUND( DATE_SHIPPED, 'DD' ) ROUND( DATE_SHIPPED, 'DDD' ) ROUND( DATE_SHIPPED, 'DY' ) ROUND( DATE_SHIPPED, 'DAY' )
DATE_SHIPPED
RETURN VALUE
Jan 15 1998 2:10:30AM
Jan 15 1998 12:00:00.000000000AM
Apr 19 1998 1:31:20PM
Apr 20 1998 12:00:00.000000000AM
Dec 20 1998 3:29:55PM
Dec 21 1998 12:00:00.000000000AM
Dec 31 1998 11:59:59PM
Jan 1 1999 12:00:00.000000000AM
NULL
NULL
以下の式は、DATE_SHIPPEDポートの各日付の時の部分を丸めます。
ROUND( DATE_SHIPPED, 'HH' ) ROUND( DATE_SHIPPED, 'HH12' ) ROUND( DATE_SHIPPED, 'HH24' )
DATE_SHIPPED
RETURN VALUE
Jan 15 1998 2:10:31AM
Jan 15 1998 2:00:00.000000000AM
Apr 19 1998 1:31:20PM
Apr 19 1998 2:00:00.000000000PM
Dec 20 1998 3:29:55PM
Dec 20 1998 3:00:00.000000000PM
Dec 31 1998 11:59:59PM
Jan 1 1999 12:00:00.000000000AM
NULL
NULL
以下の式は、DATE_SHIPPEDポートの各日付の分の部分を丸めます。
ROUND( DATE_SHIPPED, 'MI' )
DATE_SHIPPED
RETURN VALUE
Jan 15 1998 2:10:30AM
Jan 15 1998 2:11:00.000000000AM
Apr 19 1998 1:31:20PM
Apr 19 1998 1:31:00.000000000PM
Dec 20 1998 3:29:55PM
Dec 20 1998 3:30:00.000000000PM
Dec 31 1998 11:59:59PM
Jan 1 1999 12:00:00.000000000AM
NULL
NULL