Php mysql开始日期和结束日期

Php mysql开始日期和结束日期,php,mysql,codeigniter,Php,Mysql,Codeigniter,我一直在尝试从日期和结束日期获取特定日期 eg 01-01-2016至12-31-2016日期。但我只得到2015年的日期 这是我的疑问 $query = $this->db->query("SELECT date FROM `table` WHERE date between '1/1/2016' and '12/29/2016'"); echo $this->db->last_query(); exit; if ($query == true)

我一直在尝试从日期和结束日期获取特定日期
eg 01-01-2016至12-31-2016日期。但我只得到2015年的日期
这是我的疑问

$query = $this->db->query("SELECT date FROM `table` WHERE date between '1/1/2016' and '12/29/2016'");
       echo $this->db->last_query(); exit;
    if ($query == true) {
        foreach ($query->result() as $t) {
            echo $t->date . '<br>';
        }
    } else { return false; }
$query=$this->db->query(“从‘表’中选择日期,其中日期介于‘2016年1月1日’和‘2016年12月29日’”);
echo$this->db->last_query();出口
如果($query==true){
foreach($query->result()作为$t){
回显$t->日期。“
”; } }else{return false;}
但我得到了2015年的记录

问题在于:

between '1/1/2016' and '12/29/2016'");
mysql的默认日期格式是
'Y-m-d'
,因此请将日期更改为此格式,然后重试,即

between '2016-1-1' and '2016-12-29'");
$query=$this->db->query(“从'table'中选择日期,其中日期(date)介于'2016-01-01'和'2016-12-29'之间”);
echo$this->db->last_query();出口
如果($query==true){
foreach($query->result()作为$t){
回显$t->日期。“
”; } }else{return false;}

使用类似于Y-m-dformate的代码。mysql接受此格式

如果您的DB字段是varchar,则使用此格式

SELECT date FROM `table` WHERE STR_TO_DATE(date,'%m/%d/%Y') BETWEEN '2016-01-01' AND '2016-12-29'

如果日期处于varchar状态


从表格名称中选择任命日期,其中STR_TO_DATE(任命日期,%m/%d/%Y')>='2016-01-01'和STR_TO_DATE(任命日期,%m/%d/%Y')更改日期fomat yyyy-mm-dd
varchar
不同于
DATE
@vishal请告诉我们日期以何种格式存储在您的数据库中?尝试与表8/18/2016中的格式进行比较是的,实际上它在日期字段中,它是varchar格式,而不是日期格式。我可以做些什么,或者我必须更改为数据库中日期类型的日期无结果从
表中选择日期
其中日期介于'2016/01/01'和'2016/12/30'之间仅此格式?你确定?不能是另一种格式吗?我认为“Y-m-d H:I:s”也有…取决于数据库列值@Rajat Gupta:d首先确认事情,然后告诉任何人,否则您可能会得到默认的日期格式。mysql接受更多的格式。我会记住这件事。感谢@Bunker Boyi的建议。我已经写了0个结果,从
表中选择任命日期,从
表中选择任命日期,其中stru TO_日期(任命日期,%m/%d/%Y')介于'2016年1月1日'和'2016年12月14日',它在我的系统中工作,您是否有介于“2016年1月1日”和“2016年12月14日”之间的数据?不仅是日期。上述代码适用于美国。但我得到的结果为0。您的数据库中是否有任何数据可用于“2016年1月1日”和“2016年12月14日”之间的任命日期列?我编写了此查询,但我得到的2017年记录也选择了任命日期
表_name
其中任命日期>='1/01/2016'和任命日期
SELECT date FROM `table` WHERE STR_TO_DATE(date,'%m/%d/%Y') BETWEEN '2016-01-01' AND '2016-12-29'