我想在两个日期之间选择记录

时间:2015-10-26 12:22:34

标签: php mysql codeigniter

public function getTotalActiveGroups()
{   
    return
    $this->db->where('group_start >=', date('Y-m-d'))
                     ->where('group_end <=', date('Y-m-d'))
                     ->count_all_results('groups');
}

问题

在我的管理页面中,我想显示处于活动状态的群组。例如,在完成课程管理页面后,小组将于2015年10月26日至2015年11月26日开始,不应显示哪些不活动。在我的表中有2个日期列“开始日期”和“结束日期”,显示了将运行多长时间。

5 个答案:

答案 0 :(得分:1)

public function getTotalActiveGroups()
{   
    return
    $this->db->where('group_start <=', date('Y-m-d'))
                     ->where('group_end >=', date('Y-m-d'))
                     ->count_all_results('groups');
}

答案对初学者来说足够棘手!!!!)))

答案 1 :(得分:0)

试试这个

date_default_timezone_set("Asia/Kolkata"); //include your timezone
$time = date('Y-m-d h-i-s');

$query = $this->db->query("SELECT * FROM table_name WHERE end_date => '$time' ");
$result = $query->result_array();
return $result;
  

这将返回仅在现在才有效的数据

答案 2 :(得分:0)

我建议你过滤SQL查询中的日期:

SELECT *
FROM `tablename`
WHERE (enddate BETWEEN '2015-10-01' AND '2015-10-26')

答案 3 :(得分:0)

如果你的group_start字段的类型为DATETIME(不是DATE),那么你需要使用MySQL函数DATE:

$this->db->where('DATE(group_start) >=', date('Y-m-d'))
                 ->where('DATE(group_end) <=', date('Y-m-d'))
                 ->count_all_results('groups');

答案 4 :(得分:0)

你可以尝试一下。

public function getTotalActiveGroups()
    {   
        return
        $this->db->where('DATE(group_start) >=', date('Y-m-d'))
        ->where('DATE(group_end) <=',date('Y-m-d',strtotime("+1 month")))
        ->count_all_results('groups');
    }