日期和時間函數
CLEM 包括一系列函數,用於處理具有代表日期和時間之字串變數的日期時間儲存的欄位。
使用的日期和時間格式是每個流程特有的,並在流程內容中指定。 日期與時間函數根據目前選定的格式來剖析日期與時間字串。
當您在僅使用兩位數的日期中指定年份 (即未指定世紀) 時, SPSS Modeler 會使用流程內容中指定的預設世紀。
函數 | 結果 | 說明 |
---|---|---|
@TODAY |
字串 | 如果您在流程內容中選取 輪替天數/分鐘數 ,則此函數會以現行日期格式的字串形式傳回現行日期。 如果您使用兩位數日期格式,且未選取 輪替天數/分鐘數,則此函數會在現行伺服器上傳回 $null$ 。 |
to_time(ITEM) |
時間 | 將指定欄位的儲存轉換為時間。 |
to_date(ITEM) |
日期 | 將指定欄位的儲存轉換為日期。 |
to_timestamp(ITEM) |
時間戳記 | 將指定欄位的儲存轉換為時間戳記。 |
to_datetime(ITEM) |
日期時間 | 將指定欄位的儲存轉換為日期、時間或時間戳記值。 |
datetime_date(ITEM) |
日期 | 傳回數字、字串或時間戳記的日期值。 請注意,這是唯一能夠讓您將數字(秒)轉換回日期的函數。 如果 ITEM 是字串,則透過剖析現行日期格式的字串來建立日期。 流程內容中指定的日期格式必須正確,此函數才能成功。 如果 ITEM 是數字,則會將它解譯為自基本日期 (或新紀元) 以來的秒數。 日期的分數會被截斷。 如果 ITEM 是時間戳記,則會傳回時間戳記的日期部分。 如果 ITEM 是日期,則會依原樣傳回。 |
date_before(DATE1, DATE2) |
布林 | 如果 DATE1 所代表的日期或時間戳記在 DATE2 之前,那麼傳回 true 值。 否則,此函數會傳回值 0。 |
date_days_difference(DATE1, DATE2) |
整數 | 以整數的形式傳回從 DATE1 所代表日期或時間戳記到 DATE2 所代表日期或時間戳記之間的天數。 如果 DATE2 早於 DATE1,則此函數會傳回一個負數。 |
date_in_days(DATE) |
整數 | 以整數形式傳回從基準線日期到 DATE 所代表日期或時間戳記之間的天數。 如果 DATE 早於基準線日期,則此函數會傳回負數值。 必須包含有效日期,才能適當進行計算。 例如,您不應該指定 2001 年 2 月 29 日這個日期。 因為 2001 年不是閏年,所以這個日期並不存在。 |
date_in_months(DATE) |
實數 | 以實數形式傳回從基準線日期到日期或時間戳記 DATE 的月數。 這是基於一個月 30.4375 天的大概圖例。 如果 DATE 早於基準線日期,則此函數會傳回負數值。 必須包含有效日期,才能適當進行計算。 例如,您不應該指定 2001 年 2 月 29 日這個日期。 因為 2001 年不是閏年,所以這個日期並不存在。 |
date_in_weeks(DATE) |
實數 | 以實數形式傳回從基準線日期到日期或時間戳記 DATE 的週數。 這基於一週 7.0 天。 如果 DATE 早於基準線日期,則此函數會傳回負數值。 必須包含有效日期,才能適當進行計算。 例如,您不應該指定 2001 年 2 月 29 日這個日期。 因為 2001 年不是閏年,所以這個日期並不存在。 |
date_in_years(DATE) |
實數 | 以實數形式傳回從基準線日期到日期或時間戳記 DATE 的年數。 這是基於一年 365.25 天的大概圖例。 如果 DATE 早於基準線日期,則此函數會傳回負數值。 必須包含有效日期,才能適當進行計算。 例如,您不應該指定 2001 年 2 月 29 日這個日期。 因為 2001 年不是閏年,所以這個日期並不存在。 |
date_months_difference (DATE1, DATE2) |
實數 | 以實數形式傳回從日期或時間戳記 DATE1 到日期或時間戳記 DATE2 的月數。 這是基於一個月 30.4375 天的大概圖例。 如果 DATE2 早於 DATE1,則此函數會傳回一個負數。 |
datetime_date(YEAR, MONTH, DAY) |
日期 | 建立給定 YEAR、MONTH、DAY 的日期值。 引數必須是整數。 |
datetime_day(DATE) |
整數 | 傳回給定 DATE 或時間戳記中的月份日期。 結果為範圍 1 到 31 內的一個整數。 |
datetime_day_name(DAY) |
字串 | 傳回給定 DAY 的全稱。 該引數必須是介於 1(星期日)到 7(星期六)範圍內的整數。 |
datetime_hour(TIME) |
整數 | 傳回某個 TIME 或時間戳記的小時部分。 結果為 0 到 23 範圍內的整數。 |
datetime_in_seconds(TIME) |
實數 | 傳回 TIME 儲存的秒鐘部分。 |
datetime_in_seconds(DATE) , datetime_in_seconds(DATETIME) |
實數 | 傳回從目前 DATE 或 DATETIME 到基準線日期 (1900-01-01) 之間的差分的累計秒數。 |
datetime_minute(TIME) |
整數 | 傳回某個 TIME 或時間戳記的分鐘部分。 結果為 0 到 59 範圍內的整數。 |
datetime_month(DATE) |
整數 | 傳回某個 DATE 或時間戳記的月部分。 結果為 1 到 12 範圍內的整數。 |
datetime_month_name (MONTH) |
字串 | 傳回給定 MONTH 的全稱。 該引數必須是介於 1 到 12 範圍內的整數。 |
datetime_now |
時間戳記 | 傳回做為時間印記的目前時間。 |
datetime_second(TIME) |
整數 | 傳回某個 TIME 或時間戳記的秒鐘部分。 結果為 0 到 59 範圍內的整數。 |
datetime_day_short_name (DAY) |
字串 | 傳回給定 DAY 的簡稱。 該引數必須是介於 1(星期日)到 7(星期六)範圍內的整數。 |
datetime_month_short_name (MONTH) |
字串 | 傳回給定 MONTH 的簡稱。 該引數必須是介於 1 到 12 範圍內的整數。 |
datetime_time(HOUR, MINUTE, SECOND) |
時間 | 傳回給定 HOUR、MINUTE 和 SECOND 的時間值。 引數必須是整數。 |
datetime_time(ITEM) |
時間 | 傳回給定 ITEM的時間值。 |
datetime_timestamp(YEAR, MONTH, DAY,
HOUR, MINUTE, SECOND) |
時間戳記 | 傳回指定 YEAR、MONTH、DAY、小時、分鐘 以及 SECOND 的時間戳記值。 |
datetime_timestamp(DATE, TIME) |
時間戳記 | 傳回給定 DATE 和 TIME 的時間戳記值。 |
datetime_timestamp (NUMBER) |
時間戳記 | 傳回給定秒數的時間戳記值。 |
datetime_weekday(DATE) |
整數 | 傳回給定 DATE 或時間戳記中的星期。 |
datetime_year(DATE) |
整數 | 傳回某個 DATE 或時間戳記的年份部分。 結果是一個整數,例如 2021。 |
date_weeks_difference (DATE1,
DATE2) |
實數 | 以實數形式傳回從日期或時間戳記 DATE1 到日期或時間戳記 DATE2 的週數。 這基於一週 7.0 天。 如果 DATE2 早於 DATE1,則此函數會傳回一個負數。 |
date_years_difference (DATE1, DATE2) |
實數 | 以實數形式傳回從日期或時間戳記 DATE1 到日期或時間戳記 DATE2 的年數。 這是基於一年 365.25 天的大概圖例。 如果 DATE2 早於 DATE1,則此函數會傳回一個負數。 |
date_from_ywd(YEAR, WEEK, DAY) |
整數 | 將年份、年中的第幾個星期以及星期幾轉換為使用 ISO 8601 標準的日期。 |
date_iso_day(DATE) |
整數 | 傳回使用 ISO 8601 標準的日期中的星期幾。 |
date_iso_week(DATE) |
整數 | 傳回使用 ISO 8601 標準的日期中的年中第幾個星期。 |
date_iso_year(DATE) |
整數 | 傳回使用 ISO 8601 標準的日期中的年份。 |
time_before(TIME1, TIME2) |
布林 | 如果 TIME1 所代表的時間或時間戳記在 TIME2 之前,則傳回 true 值。 否則,此函數會傳回值 0。 |
time_hours_difference (TIME1, TIME2) |
實數 | 以實數形式傳回 TIME1 與 TIME2 所代表的時間或時間戳記之間的小時差。 如果您在流程內容中選取 輪替天數/分鐘數 ,則會採用較高的 TIME1 值來參照前一天。 如果您未選取輪替選項,則較高的 TIME1 值會導致回覆值為負數。 |
time_in_hours(TIME) |
實數 | 以實數的形式傳回 TIME 所代表的小時數。 例如,採用時間格式 HHMM 時,表示式 time_in_hours('0130') 的返回值為 1.5。 TIME 可以代表時間或時間戳記。 |
time_in_mins(TIME) |
實數 | 以實數的形式傳回 TIME 所代表的分鐘數。 TIME 可以代表時間或時間戳記。 |
time_in_secs(TIME) |
整數 | 以實數的形式傳回 TIME 所代表的秒數。 TIME 可以代表時間或時間戳記。 |
time_mins_difference(TIME1, TIME2) |
實數 | 以實數形式傳回 TIME1 與 TIME2 所代表的時間或時間戳記之間的分鐘差。 如果您在流程內容中選取 輪替天數/分鐘數 ,則會採用較高的 TIME1 值來參照前一天 (或前一小時,如果僅以現行格式指定分鐘及秒)。 如果您未選取輪替選項,則較高的 TIME1 值會導致回覆值為負數。 |
time_secs_difference(TIME1, TIME2) |
整數 | 傳回 TIME1 和 TIME2 所代表的時間或時間戳記之間的時差秒數(整數)。 如果您在流程內容中選取 輪替天數/分鐘數 ,則會採用較高的 TIME1 值來參照前一天 (或前一小時,如果僅以現行格式指定分鐘及秒)。 如果您未選取輪替選項,則較高的 TIME1 值會導致回覆值為負數。 |