date_trunc
説明
指定された日付部分(年、日、時間、分など)に基づいて時間値を切り捨てます。
StarRocks では、指定された日付部分を抽出するための年、四半期、月、週、日、時間の関数も提供しています。
構文
DATETIME date_trunc(VARCHAR fmt, DATETIME|DATE datetime)
パラメータ
-
datetime
: 切り捨てる時間で、DATETIME または DATE 型である必要があります。日付と時間が存在しない場合、NULL が返されます。例えば、2021-02-29 11:12:13
は日付として存在しないため、NULL が返されます。 -
fmt
: 日付部分、つまりdatetime
をどの精度まで切り捨てるかを指定します。この値は VARCHAR 定数でなければなりません。fmt
は以下の表にリストされている値に設定する必要があります。値が正しくない場合、エラーが返されます。datetime
が DATE 値の場合、fmt
はyear
,quarter
,month
,week
,またはday
のみ設定可能です。他の日付単位、例えばhour
に設定するとエラーが報告されます。例5を参照してください。
値 | 説明 |
---|---|
second | 秒単位で切り捨てます。 |
minute | 分単位で切り捨てます。秒の部分はゼロになります。 |
hour | 時間単位で切り捨てます。分と秒の部分はゼロになります。 |
day | 日単位で切り捨てます。時間の部分はゼロになります。 |
week | datetime が属する週の最初の日付に切り捨てます。時間の部分はゼロになります。 |
month | datetime が属する月の最初の日付に切り捨てます。時間の部分はゼロになります。 |
quarter | datetime が属する四半期の最初の日付に切り捨てます。時間の部分はゼロになります。 |
year | datetime が属する年の最初の日付に切り捨てます。時間の部分はゼロになります。 |
戻り値
DATETIME 型の値を返します。
datetime
が DATE 型であり、fmt
が hour
、minute
、または 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 値を時間単位で切り捨てます。エラーが返されます。
select date_trunc("hour", cast("2020-11-04" as date));
ERROR 1064 (HY000): Getting analyzing error from line 1, column 26 to line 1, column 51. Detail message: date_trunc function can't support argument other than year|quarter|month|week|day.