SQL

Prestoリファレンス【日付・時間処理関数】

Presto_logo
     
       

Presto日付・時間処理関数の紹介

Prestoの日付・時間処理関数についてご紹介します。

 

Presto日付・時間処理の注意事項

Prestoのdate型にはいくつかの型が存在しており、加算・減算する場合には注意が必要です。

 

簡単な加算・減算の処理方法については下記に記載させていただきます。

加算: date '2012-08-08' + interval '2' day → 2012-08-08

減算: date '2012-08-08' - interval '2' day → 2012-08-06

dateの他にもtime型、timestamp型でも同様にinterval を利用することで、計算が可能になります。

 

日付・時間処理関数一覧

凡例

下記一覧で利用している変数などをここに記載します。

 

変数一覧

  • str  ・・・ 文字列が入っているカラムorは固定文字列
  • timestamp ・・・ タイムスタンプ
  • unit  ・・・ 下記一覧を参照
  • format  ・・・ 下記を参照

 

unit一覧

単位(Unit)説明
millisecondミリ秒数
second秒数
minute
hour
day日数
week週単位(1〜53)
month月(1~12)
quarter四半期換算(1~4)
1〜3月:1
4〜6月:2
7〜9月:3
10〜12月:4
year年(西暦)

 

format一覧

下記URLを参照してください

https://prestodb.io/docs/0.172/functions/datetime.html

 

関数一覧

No関数説明
1now()クエリ処理開始時のタイムゾーンを
含むtimestampを返却します。
処理はcurrent_timestampと同様
(エイリアス)
2current_dateクエリ処理開始時のdate(日付)を
返却します。

返却値:YYYY-MM-DD
3current_timeクエリ処理開始時の時間を
返却します。

返却例:12:25:20.962 UTC
4current_timezoneタイムゾーンを返却します。

返却例:UTC
5from_iso8601_date(str)iso8601型の文字列をdate型に変換して返却します。

例:from_iso8601_date(‘2020-02-02’)
返却例:2020-02-02
6from_iso8601_timestamp(str)iso8601型の文字列をtimestamp型に変換して返却します。

例:from_iso8601_timestamp(‘2020-02-02T12:00’)
返却例:2020-02-02 12:00:00.000 UTC
7to_iso8601(timestamp)timestamp型をiso8601の形式に
変換して返却します。

例:to_iso8601(now())
返却例:2020-02-03 12:36
8date_add(unit,int,timestamp)tampstampへunit引数の単位で加算をします。加算する数値はintで指定します。

例:date_add(‘day’, 1, now())
返却例:2020-02-04 12:11:55.057 UTC
9date_diff(unit, timestamp1,timestamp2)timestamp1とtimestamp2を
unit引数の単位で差分を
返却します。

例:date_diff(‘day’, now(), date_add(‘day’, 3, now()))  
返却例:int型 3
10date_truck(unit, timestamp)timestampの切り捨てをunitの
単位で行います。

(unit)     切り捨ての例
second ・・・2001-08-22 03:04:05.000
minute ・・・2001-08-22 03:04:00.000
hour ・・・2001-08-22 03:00:00.000
day ・・・2001-08-22 00:00:00.000
week ・・・2001-08-20 00:00:00.000
month ・・・2001-08-01 00:00:00.000
quarter・・・2001-07-01 00:00:00.000
year ・・・2001-01-01 00:00:00.000
11date_format(timestamp,format)timestampの切り出しをformatの単位で行います。
12second(timestamp)timestampから”秒数”を切り出し返却をします。
13minute(timestamp)timestampから”分”を切り出し返却をします。
14hour(timestamp)timestampから”時間”を切り出し返却をします。
15day(timestamp)timestampから”日数(1~31)”を切り出し返却をします。
16week(timestamp)timestampから”週(1~53)”を切り出し返却をします。
17day_of_week(timestamp)timestampから”曜日”を切り出し返却をします。

1(月曜)〜7(日曜)
18day_of_year(timestamp)timestampから”日数(1~366)”を切り出し返却をします。
19month(timestamp)timestampから”月(1~12)”を切り出し返却をします。
20quarter(timestamp)timestampから”四半期”を切り出し返却をします。

1〜3月:1
4〜6月:2
7〜9月:3
10〜12月:4
21year(timestamp)timestampから”年(西暦)”を切り出し返却をします。

 

備考

データ分析をする上で欠かせない関数ばかりのため、個人的にはかなり多用してます。

 

参照元

https://prestodb.io/docs/0.172/functions/datetime.html

 

 

スポンサードリンク