2016-08-12 103 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

這讓我在需要的地方,謝謝你的幫助。 –