【问题标题】:How to filter ISO 8601 dates with a particular year如何过滤特定年份的 ISO 8601 日期
【发布时间】:2016-08-12 14:26:27
【问题描述】:

在 Adob​​e Business Catalyst 中,它以 ISO 8601 格式存储日期。 1989-08-01T00:00:00

它们提供了一种检索这些日期的方法,如下所示:

{module_data resource="customers" version="v3" fields="firstName,middleName,anniversary" skip="0" limit="10" where="\{'id':'{{memberId}}'\}" order="id" collection="crmData"}

为 anniversay 输出以下内容:

[anniversary1, 1987-08-01T00:00:00][anniversary1Title, Start Year][anniversary2, 1989-08-01T00:00:00][anniversary2Title, End Year][anniversary3, ][anniversary3Title, ][anniversary4, ][anniversary4Title, ][anniversary5, ][anniversary5Title, ]

我只想检索特定年份的记录(例如 1989 年)。我尝试了以下方法,但我很确定“包含”是错误的处理方式:

{module_data resource="customers" version="v3" fields="id,firstName,lastName" skip="0" limit="10" where="\{'anniversary.anniversary2':\{'$contains':'1989'\}\}" order="id" collection="crmData"}

当我硬编码日期(包括月份和年份)时,我可以找到我正在寻找的记录:

{module_data resource="customers" version="v3" fields="id,firstName,lastName" skip="0" limit="10" where="\{'anniversary.anniversary2':'1989-08-01'\}" order="id" collection="crmData"}

当我只知道年份时,只需要一点帮助来完成这项工作。提前致谢。

【问题讨论】:

    标签: date liquid


    【解决方案1】:

    这就是诀窍。

    {% assign first = "2016-01-01T00:00:00" -%}
    {{first}}
    {% assign last = "2017-01-01T00:00:00" -%}
    {{last}}
    {module_data resource="customers" version="v3" fields="id,firstName,lastName" skip="0" limit="10" where="\{'$and':\[\{'anniversary.anniversary1':\{'$lt':'{{last}}'\}\},\{'anniversary.anniversary1':\{'$gt':'{{first}}'\}\}\]\}" order="id" collection="myData"}
    
    <div>
    <pre>{{myData|json}}</pre>
    </div>
    

    如果您需要更多帮助,请告诉我。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 2013-05-14
      • 2013-02-03
      • 1970-01-01
      相关资源
      最近更新 更多