SPSS Modeler - 日期函数fpr上周

时间:2016-05-10 11:38:40

标签: date datetime spss spss-modeler

我想知道是否可以在上周的日期范围内使用日期功能。目前我正在使用如下方法。 感谢。

   datetime_date('Sale.Date') >= datetime_date(2016,04,18)
  and 
   datetime_date('Sale.Date') <= datetime_date(2016,04,24)

3 个答案:

答案 0 :(得分:0)

不是一个很好的解决方案,但是:

- datetime_date(datetime_year(@TODAY),datetime_month(@TODAY),datetime_day(@TODAY)-7)

这适用于除了7个月之外的所有人。

您还可以通过计算以下内容得到粗略估计(请注意,您将使用我概述的方法而不是方程式。您必须将方程式粘贴到指定的位置)。

- 一个= date_in_years(@TODAY)-7/365

- 年= a-(a mod 1)+1900

- month =(a mod 1) - ((mod 1)mod 1/12)* 12

等。然后将这些公式输入这个公式:

- 了datetime_date(年,月,日)

或者您可以使用SQL来计算7天的差异。这将是准确和容易的,但需要正确的设置。

答案 1 :(得分:0)

有点不清楚你在寻找什么; “上周”是什么意思?这是今天前7天还是最后一个日历周?如果是日历周,您使用的是哪个定义?一周的哪一天开始一周?一年中的第一周什么时候开始? 不幸的是,这些定义在世界不同地区之间有所不同,甚至在国家内也有不同用途。

SPSS Modeler中的日期都表示为从1900年1月1日起的秒数,因此如果您要查找过去7天的日期,则计算相当简单,因为您可以使用{{1}函数来获取任何日期或时间戳的数字表示。

如果您正在寻找日历周,事情会变得复杂一点,但如果您能回答上述问题,我也应该能够提供帮助。

答案 2 :(得分:0)

对于SPSS Modeler,您可以使用导出节点,我会看到两个选项:

A) 派生节点:date_weeks_difference(date1,date2) 然后使用Filter节点仅保留derive node = 1

B) 或者您可以在导出节点内使用函数,创建一个虚拟变量: 如果date_weeks_difference(date1,date2)= 1则为1 else 0 endif