Liquid を使用して日付を書式設定する方法

状況によっては、Looker による日付の書式設定方法を変更したい場合があります。

たとえば、ヨーロッパのユーザー向けの Explore とダッシュボードを作成している場合、すべての数値形式の日付は、Date-Month-Year で表示されます。たとえば、2019 年 6 月 7 日は 07/06/2019 または Jun 07, 2019 の形式にする必要があります。Looker のデフォルトの形式では、日付は 2019-06-07 としてレンダリングされます。日付形式を変更するには、DATE_FORMAT() のような SQL 関数を使用しますが、すべてを SQL で記述する必要はない場合があります。

html パラメータで Liquid を使用する

ディメンションの html パラメータで Liquid フォーマットを使用すると、有効な日付形式を使用するフィールドの形式を変更できます。Liquid では有効な日付が想定されているため、既存のディメンション グループの期間を使用することをおすすめします。週または月の数値は整数として返されるため、変更できません。

たとえば、Looker のデフォルトの 2022-08-23 ではなく Aug 23 22 としてレンダリングするように ${created_date} を書式設定できます。


  dimension: date_formatted {
    sql: ${created_date} ;;
    html:{{ rendered_value | date: "%b %d, %y" }};;
  }


文字列構文 "%b %d, %y" の形式は strftime と同じです。

html パラメータでは Liquid 形式が使用されるため、期間の元の値は変更されません。値のレンダリング方法のみが表示されます。これにより、クエリ内の日付の順序は変わりません。

以下に、利用可能なその他の例を示します。使用可能な形式については、このページの最後をご覧ください。

プリセット
%m/%d/%Y 06/05/2013
%A, %B %e, %Y 2013 年 6 月 5 日(水)
%b %e %a 6 月 5 日(水)

次の Explore クエリの例では、[アイテム注文日] と [アイテム注文週] が異なるフォーマットで表示され、Explore フィールド ピッカーで日付ディメンション グループをシミュレートするために[作成日] グループラベルの下に整理されています。

カスタム形式では、最大のアイテム数の値と対応するその年の日付と週番号が降順で表示されます。

group_label パラメータの使用方法については、group_label のドキュメント ページをご覧ください。

Explore クエリでは、アイテム注文日、アイテム注文週のカスタム日付フォーマットの結果を、アイテム注文数の降順でソートして表示します。

LookML

Explore の例では、次の LookML を使用しています。



# The original dimension group - hidden so that users can only choose from the formatted dates date and week timeframes
  dimension_group: created {
    hidden: yes
    type: time
    timeframes: [
      raw,
      time,
      date,
      hour,
      hour_of_day,
      time_of_day,
      week,
      month,
      quarter,
      year
    ]
    sql: ${TABLE}.created_at ;;
  }

# The customized timeframes, organized in the Explore field picker under the group label Created date
  dimension: date_formatted {
    group_label: "Created date"
    label: "Date"
    type: date_raw
    sql: ${created_date} ;;
    html: {{ rendered_value | date: "%b %d, %y" }};;
  }

  dimension: week_formatted {
    group_label: "Created date"
    label: "Week"
    type: date_raw
    sql: ${created_week} ;;
    html: {{ rendered_value | date: "Week %U (%b %d)" }};;
  }


strftime Reference

次の表に、さまざまな strftime 形式を示します。すべての形式が Looker で想定どおりにレンダリングされるとは限らないことに注意してください。

指定子 置き換え後
%a 短縮された曜日名 *
%A 完全な曜日名 * 木曜日
%b 短縮された月名 * 8月
%B 完全な月の名前 * 8 月
%c 日付および時刻の表記 * 2001 年 8 月 23 日 14:55:02
%C 年を 100 で割って、整数値(00 ~ 99)になるように切り捨てる 20
%d ゼロパディングされた日(01 ~ 31) 23
%D MM/DD/YY という短い日付(%m/%d/%y と同等) 08/23/01
%e スペースでパディングされた日(1 ~ 31) 23
%F YYYY-MM-DD の短い日付。%Y-%m-%d と同等 2001-08-23
%g 週ベースの年、最後の 2 桁(00 ~ 99) 1
%G 週ベースの年 2001
%h 短縮された月名 *(%b と同じ) 8月
%H 24 時間形式の時間(00 ~ 23) 14
%I 12 時間形式の時間(01 ~ 12) 02
%j その年の経過日数(001 ~ 366) 235
%k 24 時間形式の時間。1 桁の場合は空白が続きます(0 ~ 23) 14
%l 12 時間形式の時間。1 桁の場合は空白が続きます(0 ~ 12) 2
%m 10 進数として表示される月(01 ~ 12) 8
%M 分(00 ~ 59) 55
%n 改行文字(「\n」)
%P 午前または午後(小文字で指定) pm
%r 12 時間制 * 2:55:02 PM
%R 24 時間制の HH:MM 時間(%H:%M と同等) 14:55
%s エポック時間からの秒数、1970-01-01 00:00:00 +0000(UTC) 1566236649
%S 秒(00 ~ 61) 2
%t 水平タブ文字(「\t」)
%T ISO 8601 の時間形式(HH:MM:SS)。%H:%M:%S に相当 14:55:02
%u ISO 8601 の曜日。月曜日は 1(1 ~ 7) 4
%U 第 1 週の最初の日が日曜日である週番号(00 ~ 53) 33
%V ISO 8601 の週番号(01 ~ 53) 34
%w 10 進数として表示される曜日。日曜日が 0(0 ~ 6) 4
%W 第 1 週の最初の日が月曜日になる週番号(00 ~ 53) 34
%x 日付表現 * 08/23/01
%X 時刻表現 * 14:55:02
%y 年の末尾 2 桁(00 ~ 99) 1
%Y Year 2001
%z タイムゾーン内の UTC からの ISO 8601 オフセット(1 分=1、1 時間=100)タイムゾーンを判別できない場合は文字がありません 100
%Z タイムゾーンの名前または略称 *タイムゾーンを判別できない場合は文字がありません CDT
%% % 記号 %