跳到主要內容 跳至補充內容

weekname - 指令碼與圖表函數

此函數會傳回顯示年度和週數的值,其基礎數值相當於包含 date 之週的第一天、第一毫秒的時間戳記。

語法:  

WeekName(date[, period_no [, first_week_day [, broken_weeks [, reference_day]]]])

weekname() 函數判定日期落在哪一週並傳回週數和該週的年份。該週的第一天由 FirstWeekDay 系統變數決定。不過,您可以使用 weekname() 函數中的 first_week_day 引數變更該週的第一天。

 在 Qlik Sense 中,建立應用程式時會擷取地區設定,對應的設定會儲存在指令碼中,作為環境變數。

北美應用程式開發人員通常會在指令碼中取得 Set BrokenWeeks=1;,對應至中斷的週。歐洲應用程式開發人員通常會在指令碼中取得 Set BrokenWeeks=0;,對應至未中斷的週。

若應用程式使用中斷的週,則週數計數在 1 月 1 日開始,並在 FirstWeekDay 系統變數的前一天結束,無論發生了多少天。

不過,若應用程式正在使用未中斷的週,則第 1 週可以在前一年或 1 月的開頭幾天開始。這取決於您如何使用 ReferenceDayFirstWeekDay 系統變數。

Weekname 函數範例
日期 ISO 週名稱 US 週名稱
Sat 2020 Dec 26 2020/52 2020/52
Sun 2020 Dec 27 2020/52 2020/53
Mon 2020 Dec 28 2020/53 2020/53
Tue 2020 Dec 29 2020/53 2020/53
Wed 2020 Dec 30 2020/53 2020/53
Thu 2020 Dec 31 2020/53 2020/53
Fri 2021 Jan 1 2020/53 2021/01
Sat 2021 Jan 2 2020/53 2021/01
Sun 2021 Jan 3 2020/53 2021/02
Mon 2021 Jan 4 2021/01 2021/02
Tue 2021 Jan 5 2021/01 2021/02

若您想要按週比較彙總,則 weekname() 函數很實用。

例如,若您想要按週查看產品的總銷售額。若要在應用程式中維護與 BrokenWeeks 環境變數的一致性,請使用 weekname() 而非 lunarweekname()。若應用程式正在使用未中斷的週,則第 1 週可能包含上一年 12 月中的日期,或排除目前年份 1 月的日期。若應用程式正在使用中斷的週,則第 1 週的天數可少於七天。

傳回的資料類型: 雙值

引數
引數 描述
timestamp 要評估的時間戳記。
period_no shift 為整數,值 0 表示是包含 date 的週。負值的 shift 表示之前的週,正值表示之後的週。
first_week_day

指定一週開始的日期。如果忽略,將使用變數 FirstWeekDay 的值。

first_week_day 可能的值是對星期一使用 0、對星期二使用 1,對星期三使用 2,對星期四使用 3,對星期五使用 4,對星期六使用 5,並對星期日使用 6。

如需系統變數的更多資訊,請參閱 FirstWeekDay

broken_weeks

如果您未指定 broken_weeks,則變數 BrokenWeeks 的值將用於定義週是否中斷。

如需系統變數的更多資訊,請參閱 BrokenWeeks

reference_day

如果您不指定 reference_day,變數 ReferenceDay 的值將用於定義要設定一月份的哪一天為參照日以定義第 1 週。依照預設,Qlik Sense 函數使用 4 作為參照日。這表示第 1 週必須包含 1 月 4 日,或者換言之,第 1 週必須始終至少在 1 月擁有 4 日。

如需系統變數的更多資訊,請參閱 ReferenceDay

區域設定

除非另有說明,否則此主題中的範例皆使用下列日期格式:MM/DD/YYYY。日期格式是在資料載入指令碼的 SET DateFormat 陳述式中指定。由於地區設定和其他因素,您系統中的預設日期格式可能會不同。您可以變更以下範例中的格式,以滿足您的需求。或者,您可以在載入指令碼中變更格式,以符合這些範例。

應用程式中的預設地區設定是根據安裝 Qlik Sense 之電腦或伺服器的地區系統設定。若您存取的 Qlik Sense 伺服器設定為瑞典,資料載入編輯器將會對日期、時間和貨幣使用瑞典文地區設定。這些地區格式設定與 Qlik Sense 使用者介面中顯示的語言無關。Qlik Sense 顯示的語言將與您正在使用的瀏覽器相同。

以下範例假設:

Set FirstWeekDay=0; Set BrokenWeeks=0; Set ReferenceDay=4;
函數範例
範例 結果
weekname('01/12/2013') 傳回 2013/02。
weekname('01/12/2013', -1) Returns 2013/01.
weekname('01/12/2013', 0, 1) 傳回 2013/02。

範例 1 – 無其他引數的日期

範例 2 – period_no

範例 3 – first_week_day

範例 4 – 圖表物件範例

範例 5 – 情境

此頁面是否對您有幫助?

若您發現此頁面或其內容有任何問題——錯字、遺漏步驟或技術錯誤——請告知我們可以如何改善!