mysql从时间戳中选择月份

时间:2013-04-06 09:39:00

标签: php mysql codeigniter date timestamp

我有一个mysql查询,但它还没有正常工作。这个想法是:我有一个月历,所以我选择当前月份的所有项目形成我的数据库。

我选择电视节目集,他们在特定日期播出,但第二天就可以播放。我希望在我的校准中有可用的日期。所以一个具体的例子:一集剧集2013-03-31,可在2013-04-01获得。不会从数据库中选择此剧集。我尝试过这样的事情:

$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();

提前致谢!

1 个答案:

答案 0 :(得分:0)

使用MySQL DATE_ADD功能:

select mydate, date_add(mydate, interval 1 day) from testdata;

因此,如果您想获得第二天的月份,请使用month(date_add(...))

mysql> select mydate, date_add(mydate, interval 1 day) "next day", month(date_add(mydate, interval 1 day)) "month of next day" from testdata;
+------------+------------+-------------------+
| mydate     | next day   | month of next day |
+------------+------------+-------------------+
| 2013-01-31 | 2013-02-01 |                 2 |
| 2013-01-01 | 2013-01-02 |                 1 |
+------------+------------+-------------------+
2 rows in set (0.00 sec)

因此,对于您的查询,请使用$this->db->where('MONTH(DATE_ADD(first_aired, INTERVAL 1 DAY))='.$month);之类的内容。哦,你可能需要在这里和那里添加一个FROM_UNIXTIME