日期和时间函数
CLEM 包含一系列处理含有字符串日期时间存储变量的字段的函数,这些字符串变量代表日期和时间。可在“流属性”对话框中指定具体到每个流的日期和时间格式。日期和时间函数根据当前选定的格式来解析日期和时间字符串。
如果用两位数指定日期中的年(即未指定世纪),则 IBM® SPSS® Modeler 将采用“流属性”对话框中所指定的缺省世纪。
注: 如果将数据函数后推到 SQL 或 IBM SPSS Analytic Server,那么在 Analytic Server 数据源后面的分支中,该数据内的任何数据格式字符串 (to_date) 都必须与 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) |
Boolean | 如果 DATE1 所表示的日期或时间戳记在 DATE2 之前,那么返回真值。否则,此函数将返回值 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、HOUR、MINUTE 以及 SECOND 的时间戳记值。 |
datetime_timestamp(DATE, TIME) |
时间戳记 | 返回给定 DATE 和 TIME 的时间戳记值。 |
datetime_timestamp (NUMBER) |
时间戳记 | 返回给定秒数的时间戳记值。 |
datetime_weekday(DATE) |
整数 | 对给定 DATE 或时间戳记,返回其所在周的天数据。 |
datetime_year(DATE) |
整数 | 返回某个 DATE 或时间戳记的年份部分。结果为一个整数,如 2002。 |
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) |
Boolean | 如果 TIME1 所表示的时间或时间戳记在 TIME2 之前,则返回真值。否则,此函数将返回值 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 值将造成返回值为负数。 |