全部展開/全部摺疊
日期與時間函數
QlikView 日期和時間函數用來轉換日期和時間值。所有函數皆可用於載入指令碼和圖表運算式。
這些函數基於日期時間序號,等於自 1899 年 12 月 30 日之後的天數。整數值代表日子,小數值代表一天中的時間。
QlikView 使用參數的數值,以便當數字的格式未設定為日期或時間時,作為參數也有效。如果參數未對應於數值,例如,因為它是字串,則 QlikView 會嘗試根據日期和時間環境變數來解譯字串。
如果參數中所用的時間格式未對應於環境變數中設定的時間格式,QlikView 將無法正確解譯。若要解決這個問題,請變更設定或使用解譯函數。
在每一個函數的範例中,假設預設時間與日期格式是 hh:mm:ss 和 YYYY-MM-DD (ISO 8601) 。
資訊備註
使用日期或時間函數處理時間戳記時,QlikView 會忽略任何日光節約時間參數,除非日期或時間函數包含地理位置。
例如,ConvertToLocalTime( filetime('Time.qvd'), 'Paris') 將使用日光節約時間參數,而 ConvertToLocalTime(filetime('Time.qvd'), 'GMT-01:00') 則不會使用日光節約時間參數。
使用各個函數的下拉式清單,查看各函數的簡短描述及語法。按一下語法描述中的函數名稱以取得更多詳細資料。
時間的整數運算式
second
此函數在 expression 的分數根據標準數字解譯的方式可解譯為時間時,會傳回代表秒的整數。
second (expression )
minute
此函數在 expression 的分數根據標準數字解譯的方式可解譯為時間時,會傳回代表分鐘的整數。
minute (expression )
hour
此函數在 expression 的分數根據標準數字解譯的方式可解譯為時間時,會傳回代表小時的整數。
hour (expression )
day
此函數在 expression 的分數根據標準數字解譯的方式可解譯為日期時,會傳回代表日的整數。
day (expression )
week
此函數會根據 ISO 8601 傳回代表週數的整數。週數根據標準數字解譯的方式,從運算式的日期解譯計算而得。
week (timestamp [, first_week_day [, broken_weeks [, reference_day]]] )
month
此函數會傳回一個雙值,其中月份名稱由環境變數 MonthNames 所定義,整數介於 1 與 12 之間。月份根據標準數字解譯的方式,從運算式的日期解譯計算而得。
month (expression )
year
此函數在 expression 的分數根據標準數字解譯的方式可解譯為日期時,會傳回代表年度的整數。
year (expression )
weekyear
此函數會傳回根據 ISO 8601 週數所屬的年度。週數的範圍介於 1 和約 52 之間。
weekyear (expression )
weekday
此函數會傳回一個雙值,其中: 日期名稱由環境變數 DayNames 所定義, 整數介於 0 與 6 之間,相當於一周標稱的天 (0-6)。
weekday (date )
Timestamp 函數
now
此函數會傳回根據系統時鐘目前時間的時間戳記。預設值為 1。
now ([
timer_mode] )
today
此函數會傳回系統時鐘的目前日期。
today ([timer_mode] )
LocalTime
此函數會為指定時區傳回系統時鐘目前時間的時間戳記。
localtime ([timezone [, ignoreDST ]] )
Make 函數
makedate
此函數會傳回從年 YYYY 、月 MM 及日 DD 計算而得的日期。
makedate (YYYY [ , MM [ , DD ] ] )
makeweekdate
此函數會傳回從年 YYYY 、週 WW 及星期幾 D 計算而得的日期。
makeweekdate (YYYY [ , WW [ , D ] ] )
maketime
此函數會傳回從小時 hh 、分鐘 mm 及秒 ss 計算而得的時間。
maketime (hh [ , mm [ , ss [ .fff ] ] ] )
Other date 函數
AddMonths
此函數會傳回 startdate 之後 n 個月的日期,或者,若 n 為負數,則日期會在 startdate 之前 n 個月。
addmonths (startdate , n
, [ , mode] )
AddYears
此函數會傳回 startdate 之後 n 年的日期,或者,若 n 為負數,則日期會在 startdate 之前 n 年。
addyears (startdate , n )
yeartodate
此函數會找出輸入日期是否落於上次載入指令碼的日期年度內,如果是,會傳回 True ;如果不是,會傳回 False 。
yeartodate (timestamp [ , yearoffset
[ , firstmonth [ , todaydate] ] ] )
Timezone 函數
timezone
此函數會傳回目前時區的名稱 (如 Windows 所定義),不考慮日光節約時間調整。
timezone ( )
GMT
此函數會傳回日期和目前的 Greenwich Mean Time (衍生自系統時鐘和 Windows 時間設定)。
GMT ( )
UTC
傳回日期和目前 Coordinated Universal Time 。
UTC ( )
converttolocaltime
將 UTC 或 GMT 時間戳記轉換為當地時間作為雙值。地點可為全世界任何一個城市及時區。
converttolocaltime (timestamp [, place [, ignore_dst=false]] )
Set time 函數
setdateyear
此函數將 timestamp 、year 作為輸入,並以輸入中指定的 year 更新timestamp 。
setdateyear
(timestamp, year )
setdateyearmonth
此函數將 timestamp 、month 和 year 作為輸入,並以輸入中指定的 year 和 month 更新 timestamp 。
setdateyearmonth
(timestamp, year, month )
In... 函數
inyear
如果 timestamp 落於包含 base_date 的年度內,此函數會傳回 True 。
inyear (date, basedate , shift [, first_month_of_year
= 1] )
inyeartodate
如果 timestamp 落於包含 base_date 的年度部分內,且不超過 (可包含) base_date 的最後一毫秒,此函數會傳回 True 。
inyeartodate
(date, basedate , shift [, first_month_of_year
= 1] )
inquarter
如果 timestamp 落於包含 base_date 的季度內,此函數會傳回 True 。
inquarter
(date, basedate , shift [, first_month_of_year
= 1] )
inquartertodate
如果 timestamp 落於包含 base_date 的季度部分內,且不超過 (可包含) base_date 的最後一毫秒,此函數會傳回 True 。
inquartertodate
(date, basedate , shift [, first_month_of_year
= 1] )
inmonth
如果 timestamp 落於包含 base_date 的月份內,此函數會傳回 True 。
inmonth (date, basedate , shift )
inmonthtodate
如果 timestamp 落於包含 base_date 的月份部分內,且不超過 (可包含) base_date 的最後一毫秒,則會傳回 True 。
inmonthtodate
(date, basedate , shift )
inmonths
此函數會找出時間戳記是否會落在與基礎日期相同的月份、雙月、季度、四個期或半年期間內。也可以找出時間戳記是否落於之前或之後一個時間期間內。
inmonths (n, date, basedate , shift [, first_month_of_year
= 1] )
inmonthstodate
此函數會找出時間戳記是否會落於月份、雙月、季度、四月期或半年的一段期間部分內,且不超過 (可包含) base_date 的最後一毫秒。也可以找出時間戳記是否落於之前或之後一個時間期間內。
inmonthstodate
(n, date, basedate , shift [, first_month_of_year
= 1] )
inweek
如果 timestamp 落於包含 base_date 的週內,此函數會傳回 True 。
inweek (date, basedate , shift [, weekstart] )
inweektodate
如果 timestamp 落於包含 base_date 的週部分內,且不超過 (可包含) base_date 的最後一毫秒,此函數會傳回 True 。
inweektodate
(date, basedate , shift [, weekstart] )
inlunarweek
如果 timestamp 落於包含 base_date 的農曆週內,此函數會傳回 True。QlikView 中的農曆週透過將 1 月 1 日算做一週的第一天進行定義。
inlunarweek
(date, basedate , shift [, weekstart] )
inlunarweektodate
如果 timestamp 落於農曆週的部分內,且不超過 (可包含) base_date 的最後一毫秒,此函數會傳回 True。QlikView 中的農曆週透過將 1 月 1 日算做一週的第一天進行定義。
inlunarweektodate
(date, basedate , shift [, weekstart] )
inday
如果 timestamp 落於包含 base_timestamp 的日內,此函數會傳回 True 。
inday (timestamp, basetimestamp , shift [, daystart] )
indaytotime
如果 timestamp 落於包含 base_timestamp 的日部分內,且不超過 (可包含) base_timestamp 的確切毫秒,此函數會傳回 True 。
indaytotime (timestamp, basetimestamp , shift [, daystart] )
Start ... end 函數
yearstart
此函數會傳回一個相當於包含 date 之年度第一天的起點的時間戳記。預設的輸出格式為指令碼中所設定的 DateFormat 。
yearstart ( date [, shift = 0 [, first_month_of_year
= 1]] )
yearend
此函數傳回的值相當於包含 date 之年度的最後一天、最後一毫秒的時間戳記。預設的輸出格式為指令碼中所設定的 DateFormat 。
yearend ( date [, shift = 0 [, first_month_of_year
= 1]] )
yearname
此函數會傳回四位數的年度為顯示值,其基礎數值相當於包含 date 之年度的第一天、第一毫秒的時間戳記。
yearname (date [, shift = 0 [, first_month_of_year
= 1] ] )
quarterstart
此函數傳回的值相當於包含 date 之季度的第一毫秒的時間戳記。預設的輸出格式為指令碼中所設定的 DateFormat 。
quarterstart (date [, shift = 0 [, first_month_of_year
= 1]] )
quarterend
此函數傳回的值相當於包含 date 之季度的最後一毫秒的時間戳記。預設的輸出格式為指令碼中所設定的 DateFormat 。
quarterend (date [, shift = 0 [, first_month_of_year
= 1]] )
quartername
此函數會傳回顯示季度月份 (根據 MonthNames 指令碼變數進行格式設定) 和年度的顯示值,其基礎數值相當於該季度第一天、第一毫秒的時間戳記。
quartername (date [, shift = 0 [, first_month_of_year = 1]] )
monthstart
此函數傳回的值相當於包含 date 之月份的第一天、第一毫秒的時間戳記。預設的輸出格式為指令碼中所設定的 DateFormat 。
monthstart (date [, shift = 0] )
monthend
此函數傳回的值相當於包含 date 之月份的最後一天、最後一毫秒的時間戳記。預設的輸出格式為指令碼中所設定的 DateFormat 。
monthend (date [, shift = 0] )
monthname
此函數會傳回顯示月份 (根據 MonthNames 指令碼變數進行格式設定) 和年度的顯示值,其基礎數值相當於該月份第一天、第一毫秒的時間戳記。
monthname (date [, shift = 0] )
monthsstart
此函數傳回的值相當於包含基本日期之月份、雙月、季度、四月期或半年的第一毫秒的時間戳記。也可以找出之前或之後一個時間期間的時間戳記。
monthsstart (n, date [, shift = 0 [, first_month_of_year
= 1]] )
monthsend
此函數傳回的值相當於包含基本日期之月份、雙月、季度、四月期或半年的最後一毫秒的時間戳記。也可以找出之前或之後一個時間期間的時間戳記。
monthsend (n, date [, shift = 0 [, first_month_of_year
= 1]] )
monthsname
此函數會傳回代表期間月份 (根據 MonthNames 指令碼變數進行格式設定) 以及年度範圍的顯示值。基礎數值相當於包含基本日期之月份、雙月、季度、四月期或半年的第一毫秒的時間戳記。
monthsname (n, date [, shift = 0 [, first_month_of_year = 1]] )
weekstart
此函數傳回的值相當於包含 date 之行事曆週的第一天 (週一)、第一毫秒的時間戳記。預設的輸出格式為指令碼中所設定的 DateFormat 。
weekstart (date [, shift = 0 [,weekoffset = 0]] )
weekend
此函數傳回的值相當於包含 date 之行事曆週的最後一天 (週日)、最後一毫秒的時間戳記。預設的輸出格式為指令碼中所設定的 DateFormat 。
weekend (date [, shift = 0 [,weekoffset = 0]] )
weekname
此函數會傳回顯示年度和週數的顯示值,其基礎數值相當於包含 date 之週的第一天、第一毫秒的時間戳記。
weekname (date [, shift = 0 [,weekoffset = 0]] )
lunarweekstart
此函數傳回的值相當於包含 date 之農曆週的第一毫秒的時間戳記。QlikView 中的農曆週透過將 1 月 1 日算做一週的第一天進行定義。
lunarweekstart (date [, shift = 0 [,weekoffset = 0]] )
lunarweekend
此函數傳回的值相當於包含 date 之農曆週的最後一毫秒的時間戳記。QlikView 中的農曆週透過將 1 月 1 日算做一週的第一天進行定義。
lunarweekend (date [, shift = 0 [,weekoffset = 0]] )
lunarweekname
此函數傳回的顯示年度和農曆週數的顯示值,相當於包含 date 之農曆週的第一天、第一毫秒的時間戳記。QlikView 中的農曆週透過將 1 月 1 日算做一週的第一天進行定義。
lunarweekname (date [, shift = 0 [,weekoffset = 0]] )
daystart
此函數傳回的值相當於包含在 time 引數中該日的第一毫秒的時間戳記。預設的輸出格式為指令碼中所設定的 TimestampFormat 。
daystart (timestamp [, shift = 0 [, dayoffset = 0]] )
dayend
此函數傳回的值相當於包含在 time 中該日的最後一毫秒的時間戳記。預設的輸出格式為指令碼中所設定的 TimestampFormat 。
dayend (timestamp [, shift = 0 [, dayoffset = 0]] )
dayname 此函數會傳回顯示日期的值,其基礎數值相當於包含 time 之日的第一毫秒的時間戳記。
dayname (timestamp [, shift = 0 [, dayoffset = 0]] )
Day numbering 函數 age age 函數會傳回生日為 date_of_birth 的某人於 timestamp 時的年齡 (以實歲計)。
age (timestamp,
date_of_birth )
networkdays networkdays 函數會傳回介於 start_date 和 end_date 之間 (可包含) 的工作日數 (週一至週五),並考慮到所有選用列出的 holiday 。
networkdays
(start:date, end_date {, holiday} )
firstworkdate firstworkdate 函數會傳回在不晚於 end_date 前結束,並考慮到所有選用列出的假日,而可達到 no_of_workdays (週一至週五) 的最近開始日期。end_date 和 holiday 應為有效日期或時間戳記。
firstworkdate (end_date, no_of_workdays {, holiday } )
lastworkdate lastworkdate 函數會傳回如果開始於 start_date ,並考慮到所有選用列出的 holiday ,而可達到 no_of_workdays (週一至週五) 的最早結束日期。start_date 和 holiday 皆應為有效的日期或時間戳記。
lastworkdate (start_date, no_of_workdays {, holiday} )
daynumberofyear 此函數會計算時間戳記所在年度的天數。從該年度第一天的第一毫秒開始計算,但第一個月份可以位移。
daynumberofyear (date[,firstmonth] )