Дата из ТВ поля в UNIX формат
Подскажите пожалуйста как можно получить дату из ТВ поля в UNIX формате, просто есть необходимость сравнивать даты
&where=`{"date:<=":"[[!filtr]]"}`
Вот одна дата получается у меня в UNIX формате а с ТВ поля в БД дата храниться в обычном формате 'YYYY-MM-DD'0.0006690: Added where condition: `TVdate`.`value`:<==1459198800, modResource.parent:IN(5,7,4,8,9,10,11,12,13,14,15,16,17), modResource.published=1, modResource.deleted=0, modResource.isfolder=0
Комментарии: 9
[[*tv:strtotime]]
мимо
&where=`{"UNIX_TIMESTAMP(date):<=":"[[!filtr]]"}`
Такая же ситуация, нужно сравнивать даты в unix формате, но никак. надо либо хранить дополнительное поле товара в unix формате, но не получается заставить так сохранять, сохраняет в обычный timestamp.
Вариант с UNIX_TIMESTAMP(Data.dataprov) не прокатывает, в логах пишется, что нет такой колонки…
Помогите, пож-та, либо сохранять в unix формате, либо с этим кусочком UNIX_TIMESTAMP(Data.dataprov).
Вот этот отрабатывает номально [[+phx:input=`now`:strtotime]].
[[msProducts?
&parents=`160`
&tpl=`afisha-vystavka`
&sortdir=`ASC`
&showHidden=`1`
&limit=`3`
&where=`{"UNIX_TIMESTAMP(Data.dataprov):>":[[+phx:input=`now`:strtotime]]}`
&showLog=`1`
]]
Вариант с UNIX_TIMESTAMP(Data.dataprov) не прокатывает, в логах пишется, что нет такой колонки…
Could not process query, error #1054: Unknown column 'UNIX_TIMESTAMP(Data.dataprov)' in 'where clause'
Помогите, пож-та, либо сохранять в unix формате, либо с этим кусочком UNIX_TIMESTAMP(Data.dataprov).
Вот этот отрабатывает номально [[+phx:input=`now`:strtotime]].
&where=`[" UNIX_TIMESTAMP(Data.dataprov) > UNIX_TIMESTAMP() "]`
[[msProducts?
&parents=`160`
&tpl=`afisha-vystavka`
&sortdir=`ASC`
&showHidden=`1`
&limit=`3`
&where=`[" UNIX_TIMESTAMP(Data.dataprov) > UNIX_TIMESTAMP() "]`
&showLog=`1`
]]
такой вариант дает нулевую выборку Чем отличаются скобки [ ] от { } в синтаксисе?
по скобкам понял, спасибо.
а вот по запросу все равно не хочет выводить, в логах вот такой where подсовывает, что за «0=» впереди? так и должно быть?
а вот по запросу все равно не хочет выводить, в логах вот такой where подсовывает, что за «0=» впереди? так и должно быть?
Added where condition: class_key=msProduct, 0= UNIX_TIMESTAMP(Data.dataprov) > UNIX_TIMESTAMP(), msProduct.parent:IN(160,162,286)
все, разобрался. пока ставил эксперименты, совсем забыл, что тип поля в mysql менял с timestamp на int. В итоге все заработало.
итог:
спасибо за подсказки.
итог:
[[msProducts?
&parents=`160`
&tpl=`afisha-vystavka`
&sortdir=`ASC`
&showHidden=`1`
&limit=`3`
&where=`[" UNIX_TIMESTAMP(Data.dataprovdo) > UNIX_TIMESTAMP() "]`
&showLog=`0`
]]
спасибо за подсказки.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.