如何过滤特定年份的 ISO 8601 日期

How to filter ISO 8601 dates with a particular year

在 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"}

周年纪念输出如下:

[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)的记录。我尝试了以下方法,但我很确定 'contains' 是错误的方法:

{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"}

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

这样就可以了。

{% 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>

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