STR_TO_DATE无法在我的查询中使用

Dav*_*der 7 php mysql codeigniter

我在数据库中有日期字段,有varchar数据类型.现在我必须将日期与当前日期进行比较,但由于数据类型(varchar)结果不正确.

我不想在数据库中更改数据类型,所以如何在codeigniter中查询?

在我的数据库中,日期的格式为30/11/2015

我目前的查询:

    //here vd is table field(one column).

    $cd = date('d/m/Y');//current date

    $this->db->where("date_format(STR_TO_DATE(vd, '%d/%m/%Y'),'%d/%m/%Y') >",$cd); //comparing date with current date
    $query =$this->db->get('warranty');
Run Code Online (Sandbox Code Playgroud)

通过使用上面的查询,它只是比较日期而不是月份和年份.因此它将返回那些日期大于今天日期的记录.

但正确的结果不会来......

小智 6

试试这可能会对你有所帮助:

$cd = date('Y-m-d');

$this->db->where("date_format(STR_TO_DATE(vd, '%d/%m/%Y'),'%Y-%m-%d') >",$cd);
$query =$this->db->get('warranty');
Run Code Online (Sandbox Code Playgroud)

如果在查询中使用date_format,则需要更改日期格式,而是以相同格式更改可能是因为它不起作用.尝试以Ymd格式进行更改和比较.