添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

使用空白日期域过滤

有时,数据是不完整的或可选的,因此 Analytics 表中的域可能是空的。当 Analytics 中的表达式比较空白日期域时,该空白日期被视为最小系统日期值 1900-01-01。每当您编写比较日期的表达式时,您都必须考虑该行为。

销售订单表

您正在处理下面的销售订单表,并且您想要过滤它以便您可以分析所有在 2011 年之前提交的订单。如果某个记录没有订单日期,则它表示一个被取消的订单,并且您不希望将其包括在您的过滤记录中:

当您首次尝试过滤表时,您可以使用下面的简单表达式排除 2011 年及以后年份的任何订单:

提示

请注意围绕字面量日期值的反引号 `。您必须总是使用该限定符围绕字面量日期时间值。要了解更多信息,请参考 数据类型

COMMENT 过滤掉其订单日期为 2011 年 1 月 1 日及以后的记录
SET FILTER TO Order_Date < `20110101`

第一个过滤器结果

因为 Analytics 将空白日期值视为 1900-01-01,而 1900 年 1 月 1 日早于 2011 年 1 月 1 日,所以您的结果包括具有您想要排除的空白 Order_Date 域的记录:

在过滤期间检查是否存在空白域

使用函数,您可以在过滤掉 2011 年及以后年份的记录之前排除空白数据域。

如果文本值为空,则 ISBLANK( ) 函数返回真,因此,通过对 Order_Date 域进行某些操作,您可以排除空白值:

COMMENT 排除 2011 年及以后年度的空白域和订单日期
SET FILTER TO NOT ISBLANK(DATETIME(Order_Date)) AND Order_Date < `20110101`

当该表达式求值时,函数由内而外运行,并且会发生几件事情:

  • DATETIME( ) 函数将 Order_Date 日期值转换为文本值(`20100828` 变成 "20100828")。
  • ISBLANK( ) 函数检查文本值是否为空,其求值结果为真或假。
  • NOT 运算符翻转从 ISBLANK( ) 返回的逻辑值,以便:
    • 如果 Order_Date 为空(真),则该值被翻转为假,并且过滤器会排除记录
    • 如果 Order_Date 不为空(假),则该值被翻转为真,并且过滤器检查该日期是否早于 2011 年,并且包括所有其 Order_Date 值早于 2011 年 1 月 1 日的记录
  • 只有其子表达式在 AND 运算符的两侧的求值结果都为真的记录才会被包括在内。如果任一子表达式等于假,则该记录被排除。

    第二个过滤器结果

    因为您在测试订单是否是在 2011 年以前下的单之前排除了空白值,所以该过滤器的结果不会像第一个过滤器那样包括被取消的订单: