Php 查询MYSQL以查找仅在2013年发生的事件

Php 查询MYSQL以查找仅在2013年发生的事件,php,mysql,modx,Php,Mysql,Modx,我正在尝试搜索我的数据库,并查找仅在特定年份发生的场馆的结果,如2012年、2013年等 问题是,“地点日期”是UNIX时间。现在我在弄清楚如何正确设置搜索格式时遇到了问题。这就是我所拥有的,然而,这个问题仍然吸引着所有的场馆 $s = $modx->newQuery('Venues'); $s->where(array(strftime('%Y','Venues.venue_date') => '2012')); $shops = $modx->getCollectio

我正在尝试搜索我的数据库,并查找仅在特定年份发生的场馆的结果,如2012年、2013年等

问题是,“地点日期”是UNIX时间。现在我在弄清楚如何正确设置搜索格式时遇到了问题。这就是我所拥有的,然而,这个问题仍然吸引着所有的场馆

$s = $modx->newQuery('Venues');
$s->where(array(strftime('%Y','Venues.venue_date') => '2012'));
$shops = $modx->getCollection('Venues',$s);
你知道我想做的事是否可行吗?提前谢谢

解决方案

多亏了这两个答案,我才能够走上正确的轨道。我回顾了这个对我来说本质上是金矿的链接:)下面是简化的代码

$s->where('Year(from_unixtime(ventions.vention_date))=2013年)


再次感谢,希望以后人们会发现这很有用。

不确定您的其他代码,但对于选择UNIX时间,如何通过以下方式将日期格式化为UNIX时间戳:

mktime(0, 0, 0, 0, 0, 2012)
所以你的第二行应该是:

$s->where(array(strftime('%Y','Venues.venue_date') => ''.mktime(0, 0, 0, 0, 0, 2012).''));

这个怎么样<代码>来自UNIXTIME('victions.vention\u date','%Y')


谢谢,这让我走上了正确的轨道。我将更新我的问题以显示解决方案。再次感谢你的帮助!