在第一個載入指令碼中,會使用 SET TimestampFormat='DD/MM/YYYY h:mm:ss[.fff] TT'。在第二個載入指令碼中,時間戳記格式會變更為 SET TimestampFormat='MM/DD/YYYY hh:mm:ss[.fff]'。不同的結果顯示 SET TimeFormat 陳述式搭配不同時間資料格式的運作方式。
以下表格顯示用於所遵守的載入指令碼中的資料集。表格的第二欄顯示資料集中每個時間戳記的格式。前五個時間戳記遵守 ISO 8601 規則,但第六個沒有遵守。
資料集
表格顯示使用的時間資料以及資料集中每個時間戳記的格式。
transaction_timestamp |
time data format |
2018-08-30 |
YYYY-MM-DD |
20180830T193614.857 |
YYYYMMDDhhmmss.sss |
20180830T193614.857+0200 |
YYYYMMDDhhmmss.sss±hhmm |
2018-09-16T12:30-02:00 |
YYYY-MM-DDhh:mm±hh:mm |
2018-09-16T13:15:30Z |
YYYY-MM-DDhh:mmZ |
9/30/18 19:36:14 |
M/D/YY hh:mm:ss |
在資料載入編輯器中,建立新的區段,然後新增範例指令碼並執行。然後,至少將結果資料行中列出的欄位新增至您應用程式中的工作表以查看結果。
載入指令碼
SET FirstWeekDay=0; SET BrokenWeeks=1; SET ReferenceDay=0; SET DayNames='Mon;Tue;Wed;Thu;Fri;Sat;Sun'; SET LongDayNames='Monday;Tuesday;Wednesday;Thursday;Friday;Saturday;Sunday'; SET DateFormat='YYYYMMDD'; SET TimestampFormat='DD/MM/YYYY h:mm:ss[.fff] TT'; Transactions: Load *, Timestamp(transaction_timestamp, 'YYYY-MM-DD hh:mm:ss[.fff]') as LogTimestamp ; Load * Inline [ transaction_id, transaction_timestamp, transaction_amount, transaction_quantity, discount, customer_id, size, color_code 3750, 2018-08-30, 12423.56, 23, 0,2038593, L, Red 3751, 20180830T193614.857, 5356.31, 6, 0.1, 203521, m, orange 3752, 20180830T193614.857+0200, 15.75, 1, 0.22, 5646471, S, blue 3753, 2018-09-16T12:30-02:00, 1251, 7, 0, 3036491, l, Black 3754, 2018-09-16T13:15:30Z, 21484.21, 1356, 75, 049681, xs, Red 3755, 9/30/18 19:36:14, -59.18, 2, 0.333333333333333, 2038593, M, Blue ];
結果
Qlik Sense 表格顯示載入指令碼中使用的 TimestampFormat 解譯變數結果。資料集中的最後一個時間戳記不會傳回正確的日期。
transaction_id |
transaction_timestamp |
LogTimeStamp |
3750 |
2018-08-30 |
2018-08-30 00:00:00 |
3751 |
20180830T193614.857 |
2018-08-30 19:36:14 |
3752 |
20180830T193614.857+0200 |
2018-08-30 17:36:14 |
3753 |
2018-09-16T12:30-02:00 |
2018-09-16 14:30:00 |
3754 |
2018-09-16T13:15:30Z |
2018-09-16 13:15:30 |
3755 |
9/30/18 19:36:14 |
- |
下一個載入指令碼使用相同的資料集。不過,這使用 SET TimestampFormat='MM/DD/YYYY hh:mm:ss[.fff]' 以符合第六個時間戳記的非 ISO 8601 格式。
在資料載入編輯器中,以下列項目之一取代先前的範例指令碼並執行。然後,至少將結果資料行中列出的欄位新增至您應用程式中的工作表以查看結果。
載入指令碼
SET FirstWeekDay=0; SET BrokenWeeks=1; SET ReferenceDay=0; SET DayNames='Mon;Tue;Wed;Thu;Fri;Sat;Sun'; SET LongDayNames='Monday;Tuesday;Wednesday;Thursday;Friday;Saturday;Sunday'; SET DateFormat='YYYYMMDD'; SET TimestampFormat='MM/DD/YYYY hh:mm:ss[.fff]'; Transactions: Load *, Timestamp(transaction_timestamp, 'YYYY-MM-DD hh:mm:ss[.fff]') as LogTimestamp ; Load * Inline [ transaction_id, transaction_timestamp, transaction_amount, transaction_quantity, discount, customer_id, size, color_code 3750, 2018-08-30, 12423.56, 23, 0,2038593, L, Red 3751, 20180830T193614.857, 5356.31, 6, 0.1, 203521, m, orange 3752, 20180830T193614.857+0200, 15.75, 1, 0.22, 5646471, S, blue 3753, 2018-09-16T12:30-02:00, 1251, 7, 0, 3036491, l, Black 3754, 2018-09-16T13:15:30Z, 21484.21, 1356, 75, 049681, xs, Red 3755, 9/30/18 19:36:14, -59.18, 2, 0.333333333333333, 2038593, M, Blue ];
結果
Qlik Sense 表格顯示載入指令碼中使用的 TimestampFormat 解譯變數結果。
transaction_id |
transaction_timestamp |
LogTimeStamp |
3750 |
2018-08-30 |
2018-08-30 00:00:00 |
3751 |
20180830T193614.857 |
2018-08-30 19:36:14 |
3752 |
20180830T193614.857+0200 |
2018-08-30 17:36:14 |
3753 |
2018-09-16T12:30-02:00 |
2018-09-16 14:30:00 |
3754 |
2018-09-16T13:15:30Z |
2018-09-16 13:15:30 |
3755 |
9/30/18 19:36:14 |
2018-09-16 19:36:14 |