日期和时间函数
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) |
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) |
REAL | 以实数形式返回从基线日期到日期或时间戳记 DATE 的月数。 这是基于每月 30.4375 天的近似数字。 如果 DATE 在基线日期之前,那么该函数返回负数。 为了正确进行计算,必须包括有效日期。 例如,不应将日期指定为 2001 年 2 月 29 日。 因为2001年不是闰年,所以这个日期不存在。 |
date_in_weeks(DATE) |
REAL | 以实数形式返回从基线日期到日期或时间戳记 DATE 的周数。 这基于每周 7.0 天。 如果 DATE 在基线日期之前,那么该函数返回负数。 为了正确进行计算,必须包括有效日期。 例如,不应将日期指定为 2001 年 2 月 29 日。 因为2001年不是闰年,所以这个日期不存在。 |
date_in_years(DATE) |
REAL | 以实数形式返回从基线日期到日期或时间戳记 DATE 的年数。 这是基于每年 365.25 天的近似数字。 如果 DATE 在基线日期之前,那么该函数返回负数。 为了正确进行计算,必须包括有效日期。 例如,不应将日期指定为 2001 年 2 月 29 日。 因为2001年不是闰年,所以这个日期不存在。 |
date_months_difference (DATE1, DATE2) |
REAL | 以实数形式返回从日期或时间戳记 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) |
REAL | 返回 TIME 存储的秒钟部分。 |
datetime_in_seconds(DATE) , datetime_in_seconds(DATETIME) |
REAL | 返回从当前 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 或时间戳记的年份部分。 结果是一个整数,如2021。 |
date_weeks_difference (DATE1,
DATE2) |
REAL | 以实数形式返回从日期或时间戳记 DATE1 到日期或时间戳记 DATE2 的周数。 这基于每周 7.0 天。 如果 DATE2 在 DATE1 之前,那么该函数返回负值。 |
date_years_difference (DATE1, DATE2) |
REAL | 以实数形式返回从日期或时间戳记 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) |
REAL | 以实数形式返回时间或时间戳记 TIME1 与 TIME2 之间的小时差。 如果您在流程属性中选择 “滚动天数/分钟 ”,则 TIME1 表示前一天。 如果您不选择侧翻选项,较高的 TIME1 会导致返回值为负数。 |
time_in_hours(TIME) |
REAL | 以实数的形式返回 TIME 所表示的小时数。 例如,采用时间格式 HHMM 时,表达式 time_in_hours('0130') 的返回值为 1.5。 TIME 可表示时间或时间戳。 |
time_in_mins(TIME) |
REAL | 以实数的形式返回 TIME 所表示的分钟数。 TIME 可表示时间或时间戳。 |
time_in_secs(TIME) |
整数 | 以实数的形式返回 TIME 所表示的秒数。 TIME 可表示时间或时间戳。 |
time_mins_difference(TIME1, TIME2) |
REAL | 以实数形式返回时间或时间戳记 TIME1 与 TIME2 之间的分钟差。 如果您在流程属性中选择 “翻转天数/分钟 ”,则 TIME1 表示前一天(如果当前格式仅指定了分钟和秒,则表示前一个小时)。 如果您不选择侧翻选项,较高的 TIME1 会导致返回值为负数。 |
time_secs_difference(TIME1, TIME2) |
整数 | 返回 TIME1 和 TIME2 所表示的时间或时间戳记之间的时差秒数(整数)。 如果您在流程属性中选择 “翻转天数/分钟 ”,则 TIME1 表示前一天(如果当前格式仅指定了分钟和秒,则表示前一个小时)。 如果您不选择侧翻选项,较高的 TIME1 会导致返回值为负数。 |