メインコンテンツまでスキップ

date_trunc

date_trunc

説明

指定された日付部分(年、日、時間、分など)に基づいて、時刻値を切り捨てます。

StarRocksでは、指定した日付部分を抽出するために、year、quarter、month、week、day、hourの関数も提供しています。

構文

DATETIME date_trunc(VARCHAR fmt, DATETIME|DATE datetime)

パラメータ

  • datetime: 切り捨てる時刻。DATETIME型またはDATE型である必要があります。日付と時刻が存在しない場合、NULLが返されます。例えば、2021-02-29 11:12:13は日付として存在しないため、NULLが返されます。
  • fmt: 日付部分、つまりどの精度までdatetimeを切り捨てるかを指定します。値はVARCHAR定数である必要があります。 fmtは以下の表に示す値のいずれかに設定する必要があります。値が不正な場合はエラーが返されます。

説明

second

秒まで切り捨てます。

minute

分まで切り捨てます。秒の部分は0になります。

hour

時間まで切り捨てます。分と秒の部分は0になります。

day

日まで切り捨てます。時刻部分は0になります。

week

datetimeが含まれる週の最初の日付に切り捨てます。時刻部分は0になります。

month

datetimeが含まれる月の最初の日付に切り捨てます。時刻部分は0になります。

quarter

datetimeが含まれる四半期の最初の日付に切り捨てます。時刻部分は0になります。

year

datetimeが含まれる年の最初の日付に切り捨てます。時刻部分は0になります。

戻り値

DATETIME型の値を返します。

もしdatetimeがDATE型であり、fmthourminute、またはsecondに設定されている場合、返される値の時刻部分はデフォルトで00:00:00となります。

例1: 入力された時刻を分まで切り捨てる。

select date_trunc("minute", "2020-11-04 11:12:13");
+---------------------------------------------+
| date_trunc('minute', '2020-11-04 11:12:13') |
+---------------------------------------------+
| 2020-11-04 11:12:00 |
+---------------------------------------------+

例2: 入力された時刻を時間まで切り捨てる。

select date_trunc("hour", "2020-11-04 11:12:13");
+-------------------------------------------+
| date_trunc('hour', '2020-11-04 11:12:13') |
+-------------------------------------------+
| 2020-11-04 11:00:00 |
+-------------------------------------------+

例3: 入力された時刻を週の最初の日付に切り捨てる。

select date_trunc("week", "2020-11-04 11:12:13");
+-------------------------------------------+
| date_trunc('week', '2020-11-04 11:12:13') |
+-------------------------------------------+
| 2020-11-02 00:00:00 |
+-------------------------------------------+

例4: 入力された時刻を年の最初の日付に切り捨てる。

select date_trunc("year", "2020-11-04 11:12:13");
+-------------------------------------------+
| date_trunc('year', '2020-11-04 11:12:13') |
+-------------------------------------------+
| 2020-01-01 00:00:00 |
+-------------------------------------------+

例5: DATE値を時間まで切り捨てる。時刻部分として00:00:00が返されます。

select date_trunc("hour", "2020-11-04");
+----------------------------------+
| date_trunc('hour', '2020-11-04') |
+----------------------------------+
| 2020-11-04 00:00:00 |
+----------------------------------+