日付型→文字列型への変換
presto, sparksqlともdate_format関数が使える。第2引数の日付のフォーマットが違うことに注意。
presto
select date_format(date('2021-01-01'), '%Y%m%d')
sparksql
select date_format(date('2021-01-01'), 'yyyyMMdd')
文字列型→日付型への変換
presto
-- date_parseの戻り値がtimestampなのでdateに変換する
select date(date_parse('20210101','%Y%m%d'))
sparksql
select to_date('20210101','yyyyMMdd')
日付の加算、減算する(date_add関数)
引数の順番が異なるので注意。sparksqlでは期間の単位が設定できない。
presto
-- date_add(期間の単位, 期間, 基準となる日付)
select date_add('day', -1 , date('2021-01-01'))
sparksql
-- date_add(基準となる日付, 期間) 期間の単位が設定できない(日単位しかない)
select date_add(date('2021-01-01'), -1 )