【AlteryxTips】時刻データを文字列に変換する
こんにちはMJです。
"08:00:00"のような時刻データを「08時00分00秒」や「8時0分」のような形式に変換したいと思ったことはありませんか?
今回は、Alteryxで時刻データを文字列に変換する方法について紹介します。
時刻データ
Alteryxでは、時刻データを[HH:MM:SS]形式の8文字の文字列で扱っています。
このようなデータ形式を簡単に扱えるためにツール(日時ツール)や関数が提供されています。
関数名に「日付」と「時刻」の両方を含むべきと思うかもしれませんが、一部の関数はどちらか一方のみを含んでいれば使うことができます。
それでは、時刻データを文字列に変換する方法をご紹介します。
日時ツールを使用する方法
パースカテゴリの日時ツールは、最も簡単に日付/時刻データを文字列に変換、逆に文字列を日付/時刻データに変換できるツールです。
変換するフォーマットを選択し、変換対象のフィールドを選択してフォーマットを設定するだけで、簡単に文字列に変換できます。
また、カスタマイズも可能なので、必要なフォーマットがない場合でも、希望する形式で出力できます。
しかし、この場合、"09時 00分"のように、一桁の数字に「0」が追加されて出力されるため、"9時 0分"の形式で出力するのは難しいです。
このような場合、日時関数を使って表現することが可能です。
日時関数を使用する方法
DateTimeFormat()関数を使用
まず、日時形式から任意のフォーマットで文字列形式に変換できる DateTimeFormat() 関数を使用する方法を紹介します。
DateTimeFormat(df, f, l)
- df:変換したい日付/時刻データを入力します。
- f:変換したいフォーマットを指定します。
変換対象 | フォーマット | サンプル(09:05:02) |
---|---|---|
時(24時間制) | %H | 09 |
時(24時間制、0削除) | %k | 9 |
時(12時間制) | %l | 9 (AM) |
分 | %M | 05 |
秒 | %S | 02 |
午前/午後 | %P | 午前 (AM) |
- l:言語を指定します。日本語で出力する場合は「"日本語"」を指定してください。
フォーミュラツールを使用し、DateTimeFormat関数に変換フォーマットを指定し、希望する形式で出力してみました。
この場合、"9時00分00秒"のように時刻に関しては変換可能でしたが、分と秒についてはまだ二桁で表示されています。
DateTimeHour(), DateTimeMinutes(), DateTimeSeconds()関数を使用
一桁の時、分、秒を表現するためには、以下の関数を使用します。
- DateTimeHour()
- DateTimeMinutes()
- DateTimeSeconds()
引数として、変換したい日付/時刻データを入力します。
このように関数を使用して返された「時、分、秒」を再び文字列として合わせることで、
一桁の数字のみを表示する"9時 0分 0秒"形式に変換することができました。
※Alteryx Version 2024.1.1時点での情報です