php中的SQL查询无法按要求运行

时间:2015-05-23 05:38:32

标签: php mysql date

我有一个列名为DT的数据库,其值为:

  1. 16-05-2015
  2. 16-05-2015
  3. 30-06-2015
  4. 30-06-2015
我正在使用的php中的

Sql查询是:

    $sql = "Select * from logs WHERE (DT<= '$to') AND (DT>= '$from')  "; 

我也使用过查询:

     $sql = "Select * from logs WHERE (DT BETWEEN '$to' AND '$from')  "; 

两个查询的运行方式都不符合要求。

如果$to=31-05-2015和$ from = 31之前的任何日期,查询也会显示30-06-2015日期,但不在范围内。

$to=30-05-2015时,会显示正确的结果,但选择30-05-2015后的任何日期都不会显示正确的范围,可能是什么原因?

2 个答案:

答案 0 :(得分:2)

您必须将日期格式更改为yyyy-mm-dd,同时将其保存到数据库并在显示时将其更改为dd-mm-yyyy,并将列的数据类型更改为日期时间以使您查询工作

$newdate = date("d-m-Y", strtotime($yourdate));

答案 1 :(得分:1)

显然,DT未在您的数据库中配置为date

因此值为lexigoraphically,为字符串。

(在lexigoraphical顺序中:30-...31-...之前,无论...可能是什么)

您可以将数据更改为yyyy-mm-dd字符串。

或者将列正确配置为日期