在某些情況下,您可能需要變更 Looker 格式日期的方式。
舉例來說,如果您要為歐洲使用者建立探索和資訊主頁,則所有以全數字格式表示的日期都應以「日-月-年」的順序顯示。舉例來說,2019 年 6 月 7 日的格式應為 07/06/2019 或 Jun 07, 2019。Looker 的預設格式會將日期顯示為 2019-06-07。雖然您可以使用 DATE_FORMAT() 等 SQL 函式變更日期格式,但不建議您將所有內容都寫入一般 SQL。
在 html 參數中使用 Liquid
您可以在維度的 html 參數中使用流動格式,變更任何使用有效日期格式的欄位格式。由於 Liquid 需要有效的日期,因此建議您使用現有維度群組的時間範圍。您無法變更週或月編號,因為這些值會以整數形式傳回。
舉例來說,您可以將 ${created_date} 的格式設為 Aug 23 22,而非 Looker 的預設 2022-08-23:
dimension: date_formatted {
sql: ${created_date} ;;
html:{{ rendered_value | date: "%b %d, %y" }};;
}
字串語法 "%b %d, %y" 的格式與 strftime 相同。
由於 html 參數使用 Liquid 格式,因此時間範圍的原始值不會變更,只有呈現給使用者的值會變更。這樣可確保日期在查詢中顯示的順序不會變更。
以下列舉其他可用範例。如需查看可用格式的詳細參考資料,請參閱本頁底部。
| 預設值 | 範例 |
%m/%d/%Y
|
2013 年 6 月 5 日 |
%A, %B %e, %Y
|
2013 年 6 月 5 日星期三 |
%b %e %a
|
6 月 5 日星期三 |
範例
以下探索查詢範例顯示「Order Items Date」和「Orders Items Week」的格式不同,並在「Created date」群組標籤下方排列,模擬探索欄位挑選器中的日期維度群組。
自訂格式會向使用者顯示,哪些日期和年份的週數對應到最大的項目計數值,並以降冪順序排序。
如要進一步瞭解如何使用 group_label 參數,請參閱 group_label 說明文件頁面。
LookML
探索範例使用以下 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 | 以整數 (00-99) 表示的年份 (除以 100 並截斷) | 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 | 以週為單位的年份,末兩碼 (00-99) | 1 |
| %G | 以週為週期 | 2001 |
| %h | 縮寫的月份名稱 * (與 %b 相同) | 8 月 |
| %H | 小時,以 24 小時制表示 (00-23) | 14 |
| %I | 12 小時制格式的小時 (01-12) | 02 |
| %j | 一年中的日期 (001-366) | 235 |
| %k | 以 24 小時制表示的時刻,單一數字前面會加上空格 (0-23) | 14 |
| %l | 以 12 小時制表示的時刻,單一數字前面會加上空格 (0-12) | 2 |
| %m | 以十進位數字 (01-12) 表示的月份。 | 8 |
| %M | 分鐘 (00-59) | 55 |
| %n | 換行字元 '\n' | |
| %P | am 或 pm 標記 (小寫) | pm |
| %r | 12 小時制時間 * | 下午 2:55:02 |
| %R | 24 小時制 HH:MM 時間,等同於 %H:%M | 14:55 |
| %s | 自 Epoch 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 | 以第一個星期日做為第一週的第一天,計算出週數 (00-53) | 33 |
| %V | ISO 8601 週數 (01-53) | 34 |
| %w | 以十進位數字表示的星期幾,星期日為 0 (0-6) | 4 |
| %W | 以第一個星期一為第一週第一天的週數 (00-53) | 34 |
| %x | 日期表示法 * | 08/23/01 |
| %X | 時間表示法 * | 14:55:02 |
| %y | 年份,末兩碼 (00-99) | 1 |
| %Y | 年份 | 2001 |
| %z | ISO 8601 時區與世界標準時間的時差 (1 分鐘=1、1 小時=100)。如果無法判斷時區,則不顯示任何字元 | 100 |
| %Z | 時區名稱或縮寫 *如果無法判斷時區,則不顯示任何字元 | CDT |
| %% | 百分比符號 % | % |