类型为VARCHAR时的SQL查询日期

Web*_*evB 4 php mysql sql codeigniter

我正在尝试使用两个日期查询数据库...问题是我查询的列包含当前格式为"01/01/2014"(dd/mm/yyyy)的日期,其中包含一列VARCHAR的类型.

目前,我无法将列转换为日期类型.

基本上当我查询表因为它没有设置为日期类型时,查询之间没有返回正确的行...

有没有其他人遇到过这个问题,我可以在查询中更改一些内容吗?

$this->db->where('IssueDate >=', '02/12/2013');
$this->db->where('IssueDate <=', '22/01/2014');
$query = $this->db->get('MYTABLE');
Run Code Online (Sandbox Code Playgroud)

多谢你们.

Gor*_*off 6

解决方案是使用str_to_date():

$this->db->where("str_to_date(IssueDate, '%d/%m/%Y') >=", "'2013-12-92'");
$this->db->where("str_to_date(IssueDate, '%d/%m/%Y') <=", "'2014-01-22'");
$
Run Code Online (Sandbox Code Playgroud)

您可能无法控制数据库.但是你可以控制自己的常量.您应该习惯ISO标准YYYY-MM-DD这样的常量 - 大多数数据库都是明确无误的.