【问题标题】:Query MYSQL for events that occurred only in 2013在 MYSQL 中查询仅在 2013 年发生的事件
【发布时间】:2013-11-08 00:57:39
【问题描述】:

我正在尝试搜索我的数据库并查找仅在给定年份(例如 2012 年、2013 年等)发生的场所的结果。

问题:“地点日期”是 UNIX 时间。现在我在弄清楚如何正确格式化搜索时遇到了问题。这是我所拥有的,但是查询仍在拉动所有场地。

$s = $modx->newQuery('Venues');
$s->where(array(strftime('%Y','Venues.venue_date') => '2012'));
$shops = $modx->getCollection('Venues',$s);

知道我正在尝试做的事情是否可行吗?提前致谢!

解决方案

多亏了这两个答案,我才能够走上正确的道路。我查看了这个链接http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html,这对我来说本质上是一个金矿:) 下面是简化的代码......

$s->where('Year(from_unixtime(Venues.venue_date))=2013');

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

【问题讨论】:

    标签: php mysql modx


    【解决方案1】:

    这个呢? FROM_UNIXTIME('Venues.venue_date', '%Y')

    Mysql - selecting year from a unix timestamp

    【讨论】:

    • 谢谢,这让我走上了正确的道路。我将更新我的问题以显示解决方案。再次感谢您的帮助!
    【解决方案2】:

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

    mktime(0, 0, 0, 0, 0, 2012)
    

    所以你的第二行会变成:

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

    【讨论】:

      猜你喜欢
      • 2013-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多