2016-08-12 50 views
2

在Adobe Business Catalyst中,它以ISO 8601格式E.G.存储日期。 1989-08-01T00:00:00如何筛选特定年份的ISO 8601日期

他们提供检索这些日期,像这样的手段:

{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, ] 

我想找回只有某一年的记录(EG 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"} 

只需要一点帮助,使我的工作,当我只知道一年。提前致谢。

回答

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> 

让我知道你是否需要更多的帮助。

+0

这让我在需要的地方,谢谢你的帮助。 –