TRUNC_TIMESTAMP スカラー関数

TRUNC_TIMESTAMP関数は、 指定された書式文字列で指定された単位に切り捨てられた、 式であるタイムゾーンなしのTIMESTAMP値を返します。 format-string が指定されていない場合、 format-string に 'DD' が指定されているかのように、 表現は最も近い日に切り捨てられます。

構文図を読むビジュアルシンタックスダイアグラムをスキップするTRUNC_TIMESTAMP( 'DD',書式文字列 )

スキーマは SYSIBM です。

タイム・スタンプ、文字ストリング、またはグラフィック・ストリングのいずれかの組み込みデータ・タイプの値を戻す式。 式が文字ストリングまたはグラフィック・ストリングの場合、このストリングは CLOB または DBCLOB であってはなりません。ストリングの値は、実際の長さが 255 バイト以下の、タイム・スタンプの有効なストリング表現であることが必要です。 タイム・スタンプのストリング表現内のタイム・ゾーンは無視されます。 日付とタイムスタンプの文字列表現の有効な形式については、「日時値の文字列表現」 を参照してください。
書式文字列
長さが 255 バイト以下の、組み込みの文字ストリング・データ・タイプまたはグラフィック・ストリング・データ・タイプを戻す式。 format-string は、式によって表されるタイム・スタンプを切り捨てる方法を示すテンプレートです。 例えば、format-string が「DD」ならば、expression によって表されるタイム・スタンプは、最も近い日に切り捨てられます。 format-string はタイム・スタンプに対して有効なテンプレートでなければならず、先行ブランクや末尾ブランクを含んではいけません。 format-string に指定できる値を以下の表にリストします。
表 1. ROUND_TIMESTAMP および TRUNC_TIMESTAMP の形式モデル
形式モデル フォーマット・モデルの丸めまたは切り捨てについての説明 ROUND_TIMESTAMP の例 TRUNC_TIMESTAMP の例
CC
SCC
世紀。

4 桁の年号のうち最初の 2 桁より 1 大きい桁。

ROUND_TIMESTAMP の場合は、世紀の 50th 年に切り上げられます。

入力値:
1897-12-04-12.22.22.000000
結果:
1901-01-01-00.00.00.000000
入力値:
1897-12-04-12.22.22.000000
結果:
1801-01-01-00.00.00.000000
SYYYY
YYYY
YEAR
SYEAR
YYY
YY
Y
年。

ROUND_TIMESTAMP の場合、7 月 1 日を翌年の 1st 1 月に切り上げます。

入力値:
1897-12-04-12.22.22.000000
結果:
1898-01-01-00.00.00.000000
入力値:
1897-12-04-12.22.22.000000
結果:
1897-01-01-00.00.00.000000
IYYY
IYY
IY
I
ISO year.

ROUND_TIMESTAMP の場合は、7 月 1 日を次の ISO 年の最初の日に切り上げます。 ISO 年の初日は、最初の ISO 週の月曜日と定義されます。

入力値:
1897-12-04-12.22.22.000000
結果:
1898-01-03-00.00.00.000000
入力値:
1897-12-04-12.22.22.000000
結果:
1897-01-04-00.00.00.000000
Q 四半期。

ROUND_TIMESTAMP は、四半期の 2 番目の月の 16th 日に切り上げられます。

入力値:
1999-06-04-12.12.30.000000
結果:
1999-07-01-00.00.00.000000
入力値:
1999-06-04-12.12.30.000000
結果:
1999-04-01-00.00.00.000000



RM
月。

ROUND_TIMESTAMP の場合、端数は 16th 日に切り上げられます。

入力値:
1999-06-18-12.12.30.000000
結果:
1999-07-01-00.00.00.000000
入力値:
1999-06-18-12.12.30.000000
結果:
1999-06-01-00.00.00.000000
WW 年の初日と同じ曜日。

ROUND_TIMESTAMP の場合、年の最初の日を基準として、週の 4th 日の 12th 時間に切り上げられます。

入力値:
2000-05-05-12.12.30.000000
結果:
2000-05-06-00.00.00.000000
入力値:
2000-05-05-12.12.30.000000
結果:
2000-04-29-00.00.00.000000
IW ISO 年の初日と同じ曜日。

ROUND_TIMESTAMP の場合、ISO 年の最初の日を基準として、週の 4th 日の 12th 時間に切り上げられます。

入力値:
2000-05-05-12.12.30.000000
結果:
2000-05-08-00.00.00.000000
入力値:
2000-05-05-12.12.30.000000
結果:
2000-05-01-00.00.00.000000
W 月の初日と同じ曜日。

ROUND_TIMESTAMP の場合、月の最初の日を基準として、週の 4th 日の 12th 時に切り上げられます。

入力値:
2000-06-21-12.12.30.000000
結果:
2000-06-22-00.00.00.000000
入力値:
2000-06-21-12.12.30.000000
結果:
2000-06-15-00.00.00.000000
DDD
DD
J
日。

ROUND_TIMESTAMP の場合、端数はその日の 12th 時に切り上げられます。

入力値:
2000-05-17-12.59.59.000000
結果:
2000-05-18-00.00.00.000000
入力値:
2000-05-17-12.59.59.000000
結果:
2000-05-17-00.00.00.000000


D
開始曜日。

ROUND_TIMESTAMP の場合は、 4th 曜日の 12th 時を基準として切り上げます。 週の初日は必ず日曜日です。

入力値:
2000-05-17-12.59.59.000000
結果:
2000-05-21-00.00.00.000000
入力値:
2000-05-17-12.59.59.000000
結果:
2000-05-14-00.00.00.000000
HH
HH12
HH24
時間。

ROUND_TIMESTAMP の場合は、 30 分で切り上がります。

入力値:
2000-05-17-23.59.59.000000
結果:
2000-05-18-00.00.00.000000
入力値:
2000-05-17-23.59.59.000000
結果:
2000-05-17-23.00.00.000000
MI 分。

ROUND_TIMESTAMP の場合は、 30 秒で切り上がります。

入力値:
2000-05-17-23.58.45.000000
結果:
2000-05-17-23.59.00.000000
入力値:
2000-05-17-23.58.45.000000
結果:
2000-05-17-23.58.00.000000
SS 2番目。

ROUND_TIMESTAMP の場合は、 500000 マイクロ秒で切り上がります。

入力値:
2000-05-17-23.58.45.500000
結果:
2000-05-17-23.58.46.000000
入力値:
2000-05-17-23.58.45.500000
結果:
2000-05-17-23.58.45.000000

は、以下のようにキャストされます。

  • expression がタイム・ゾーン値を持つタイム・スタンプの場合、expression は、expression と同じ精度のタイム・ゾーン値を持たないタイム・スタンプにキャストされます。
  • それ以外の場合、expression は TIMESTAMP(6) WITHOUT TIME ZONE にキャストされます。

この関数の結果は、タイム・ゾーン付きのタイム・スタンプです。

結果は NULL 値になることがあります。いずれかの引数が NULL 値である場合、結果は NULL 値になります。

結果の CCSID は、引数のコード化スキームに適合する CCSID であり、結果のサブタイプは、CCSID に適合するサブタイプです。

例: ホスト変数 TRNK_TMSTMP を、指定の日付を最も近い年の値に丸めた値に設定します。
   SET :TRNK_TMSTMP = TRUNC_TIMESTAMP('2008-03-14-17.30.00', 'YEAR'); 
ホスト変数 TRNK_TMSTMP は値「2008-01-01-00.00.00.000000」に設定されます。