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格式进行更改和比较.