【Spark】SparkSQLの日付関数コードサンプル

SQL
※本ページにはプロモーションが含まれます
※本ページにはプロモーションが含まれます
スポンサーリンク

SparkSQLの日付関数とは

SparkSQLには、日付を指定したフォーマットで返したり、日付の差分を返したり出来る日付関数があります。

日付関数をでよく使うものをまとめてみたいと思います。

SparkSQLの日付関数

  • current_date(): 現在の日付を返します。
SELECT current_date();
  • current_timestamp(): 現在のタイムスタンプ(日時)を返します。
SELECT current_timestamp();
  • date_format(date, format): 指定した形式で日付をフォーマットします。
SELECT date_format(current_date(), 'yyyy-MM-dd');
  • date_add(startdate, num_days): 指定した日数を加えた後の日付を返します。
SELECT date_add('2023-01-01', 7);
  • date_sub(startdate, num_days): 指定した日数を引いた後の日付を返します。
SELECT date_sub('2023-01-08', 7);
  • datediff(enddate, startdate): 2つの日付の差を日数で計算します。
SELECT datediff('2023-05-12', '2023-01-01');
  • year(date): 日付の年を返します。
SELECT year('2023-05-12');
  • month(date): 日付の月を返します。
SELECT month('2023-05-12');
  • day(date): 日付の日を返します。
SELECT day('2023-05-12');
  • trunc(date, format): 指定した形式で日付を切り捨てます。
SELECT trunc('2023-05-12', 'MM');
  • add_months(startdate, num_months): 指定した月数を加えた後の日付を返します。
SELECT add_months('2023-01-01', 3);
  • last_day(date): 指定した月の最後の日を返します。
SELECT last_day('2023-05-12');
  • next_day(startdate, dayOfWeek): 指定した日付以降で最も近い指定曜日の日付を返します。
SELECT next_day('2023-05-12', 'Sunday');
  • quarter(date): 日付の四半期を返します。
SELECT quarter('2023-05-12');
  • weekofyear(date): 年内の週番号を返します。
SELECT weekofyear('2023-05-12');
  • from_unixtime(unixtime, format): UNIXタイムスタンプを指定した形式の文字列に変換します。
SELECT from_unixtime(1620807600, 'yyyy-MM-dd HH:mm:ss');
  • unix_timestamp([timestamp, format]): 指定したタイムスタンプをUNIXタイムスタンプ(秒数)に変換します。
SELECT unix_timestamp('2023-05-12 10:30:00', 'yyyy-MM-dd HH:mm:ss');
  • date_diff(startdate, enddate): 2つの日付の差を返します。(日数で計算)
SELECT date_diff('2023-01-01', '2023-05-12');
  • datediff(startdate, enddate, unit): 2つの日付の差を指定した単位で計算します。(単位は日、週、月、年など)
SELECT datediff('2023-05-12', '2023-01-01', 'week');
  • date_part(unit, timestamp): 指定した単位の値を取得します。(単位は年、月、日、時、分、秒など)
SELECT date_part('hour', '2023-05-12 10:30:00');
  • date_trunc(format, timestamp): 指定した形式でタイムスタンプを切り捨てます。
SELECT date_trunc('hour', '2023-05-12 10:30:00');
  • datediff_interval(enddate, startdate): 2つの日付の差をINTERVAL型で返します。
SELECT datediff_interval('2023-05-12', '2023-01-01');

SQL参考文献

SQL学び始めの時はこちらの本を参考にしていました。DBやテーブルの構造から、よく使う関数などがまとめられています。基礎を身につけたい方におススメかと思います。

プログラムの学習は現役エンジニアから学べる TechAcademy [テックアカデミー] のご活用もぜひご検討ください!

SQL関連記事

そのほか、こちらにSQL関連の情報をまとめております。
>Coffee Tech Blog SQL関連情報

参考になれば幸いです☕

コメント

タイトルとURLをコピーしました