【发布时间】:2013-03-28 18:35:15
【问题描述】:
我有一个 mysql 查询,但它还不能正常工作。这个想法是:我有一个月历,所以我从我的数据库中选择当前月份的所有项目。
我选择电视节目剧集,它们在特定日期播出,但第二天就可以播放。我想在我的 cal 中有可用的日期。举一个具体的例子:一集于 2013 年 3 月 31 日播出,并于 2013 年 4 月 1 日播出。本集不会从数据库中选择。我尝试过这样的事情:
$this->db->where('MONTH(FROM_UNIXTIME(first_aired+86400))='.$month);
但它没有用。有谁知道解决方案?这是我的完整代码:
$this->db->select('*, episodes.overview as overview, episodes.id as ep_id, shows.id as id');
$this->db->from('episodes');
$this->db->join('shows', 'episodes.imdb_id = shows.imdb_id');
$this->db->where('CHAR_LENGTH(episodes.ep_title) > 1');
$this->db->where('MONTH(FROM_UNIXTIME(first_aired))='.$month);
$this->db->where('YEAR(FROM_UNIXTIME(first_aired))='.$year);
$this->db->order_by('episodes.first_aired', 'DESC');
$data = $this->db->get()->result_array();
提前致谢!
【问题讨论】:
-
你能不能先从前一个日期得到下一个日期..如果你能得到然后使用这个日期('m',$date);
-
没有
+86400的代码是否有效?在测试数据库上,使用今天的时间戳,像这样的直接 SQL 查询会产生预期的结果(也就是返回下个月的项目):SELECT * FROM test WHERE MONTH(FROM_TIMESTAMP(first_aired + 2592000)) = 5。所以这种类型的查询有效。你看过生成的 SQL 吗?例如,echo $this->db->last_query();。附带说明一下,您为什么还要使用 unix 时间戳?您应该将这些日期存储为DATE或DATETIME字段。
标签: php mysql codeigniter date timestamp