`TIME_TRUNC` 関数は、`time` 値を `date_part` で指定された時間単位に基づいて切り捨て、マイクロ秒単位の時刻を表す `BIGINT` 値を返します。
構文
BIGINT TIME_TRUNC(BIGINT <time>, STRING <date_part>)
-- 例
-- 1234567890 が返されます。
SELECT TIME_TRUNC(1234567890L,'ff6');パラメーター
time:必須。マイクロ秒単位の時刻を表す `BIGINT` 値です。この値は TO_TIME 関数を使用して作成できます。
MaxCompute 1.0 データ型バージョンでは、パラメーターが `STRING` 型または `DOUBLE` 型の場合、計算のために暗黙的に `BIGINT` 型に変換されます。
date_part:必須。切り捨ての時間単位。このパラメーターは `STRING` 型の定数である必要があります。有効な値は次のとおりです。
MICROSECOND/MICROS/ff6:この粒度を使用した場合、マイクロ秒が最小の時間単位であるため、時刻値は切り捨てられません。MILLISECOND/MILLIS/ff3:現在値以下の最も近いミリ秒に時刻を切り捨てます。たとえば、時刻が15:30:00.123456の場合、切り捨て後の結果は15:30:00.123になります。SECOND/SS:現在値以下の最も近い秒に時刻を切り捨てます。たとえば、時刻が15:30:00.123456の場合、切り捨て後の結果は15:30:00になります。MINUTE/MI:現在値以下の最も近い分に時刻を切り捨てます。たとえば、時刻が15:30:45.123456の場合、切り捨て後の結果は15:30:00になります。HOUR/HH:現在値以下の最も近い時に時刻を切り捨てます。たとえば、時刻が15:45:30.123456の場合、切り捨て後の結果は15:00:00になります。
戻り値
この関数は、マイクロ秒単位の BIGINT 値を返します。次のルールが適用されます。
time が `BIGINT` 値でない場合、エラーが返されます。
date_part が定数でない値であるか、サポートされていないフォーマットであるか、または別のデータ型である場合、エラーが返されます。
time または date_part が `NULL` の場合、`NULL` が返されます。
例
例
例 1:時刻値をマイクロ秒 ('ff6') とミリ秒 ('ff3') の粒度に切り捨てます。
-- マイクロ秒 (ff6) の粒度に切り捨てます。1234567890 が返されます。 SELECT TIME_TRUNC(1234567890, 'ff6'); -- ミリ秒 (ff3) の粒度に切り捨てます。1234567000 が返されます。 SELECT TIME_TRUNC(1234567890, 'ff3');例 2:時刻値を時 ('HOUR')、分 ('MINUTE')、秒 ('SECOND') の粒度に切り捨てます。次に、FORMAT_TIME 関数を使用して、返された `BIGINT` の時刻値を指定されたフォーマットの `STRING` に変換します。
-- 時刻 '15:31:38.776' を異なる粒度に切り捨て、出力をフォーマットします。 -- 時に切り捨てます。15:00:00 が返されます。 SELECT FORMAT_TIME( TIME_TRUNC(TO_TIME('15:31:38.776', 'HH:MI:SS.ff3'), 'HOUR'), '%H:%M:%S' ) AS truncated_hour; -- 分に切り捨てます。15:31:00 が返されます。 SELECT FORMAT_TIME( TIME_TRUNC(TO_TIME('15:31:38.776', 'HH:MI:SS.ff3'), 'MINUTE'), '%H:%M:%S' ) AS truncated_minute; -- 秒に切り捨てます。15:31:38 が返されます。 SELECT FORMAT_TIME( TIME_TRUNC(TO_TIME('15:31:38.776', 'HH:MI:SS.ff3'), 'SECOND'), '%H:%M:%S' ) AS truncated_second;例 3:`NULL` 入力の処理。
-- NULL が返されます。 SELECT TIME_TRUNC(NULL, 'SECOND'); -- date_part が NULL の場合、NULL が返されます。 SELECT TIME_TRUNC(TO_TIME(12,00,00), NULL);
関連関数
TIME_TRUNC 関数は時間関数です。時間を計算または変換するその他の関数については、「日付および時刻関数」をご参照ください。