【问题标题】:SPSS Modeler - Date Function fpr lastweekSPSS Modeler - 上周的日期函数
【发布时间】:2016-05-10 11:38:39
【问题描述】:

我想知道是否可以对上周的日期范围使用日期函数。目前我正在使用如下方法。 谢谢。

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

【问题讨论】:

    标签: date datetime spss spss-modeler


    【解决方案1】:

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

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

    这将适用于除 7 天以外的所有月份。

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

    --a=date_in_years(@TODAY)-7/365

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

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

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

    --datetime_date(年、月、日)

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        【解决方案3】:

        对于 SPSS Modeler,您可以使用派生节点,我看到有两个选项可以做到这一点:

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

        B) 或者您可以在派生节点中使用一个函数,创建一个虚拟变量: if date_weeks_difference(date1,date2)= 1 then 1 else 0 endif

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-04-03
          • 1970-01-01
          • 2019-01-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-28
          相关资源
          最近更新 更多