使用mysql选择日期

时间:2014-07-12 17:13:29

标签: php mysql

我使用以下代码从我的数据库中获取 date

$con= mysqli_connect("localhost","root","123","core");

$sql=mysqli_query($con,"SELECT * FROM transaction where date BETWEEN '7/1/204' AND '7/31/2014' ") or die ("error"); 

    while($row=mysqli_fetch_array($sql)){

    $DBDate=$row['date'];

    $D=strtotime($DBDate);
    echo date('m/j/Y',$D). "<br>"; 
    }

我的数据库如下:

    balance     date

    500       7/1/2014
    1000      7/7/2014
    800       7/10/2014
    1500      8/2/2014

当我选择2014年7月1日至2014年7月31日之间的范围时,结果中不包含7/7/2014。显示了7/1/2014和7/10/2014两者。

请帮助我在7/7/2014获取上述日期范围并告诉我2014年7月7日的情况。

1 个答案:

答案 0 :(得分:0)

如果您有VARCHAR列,则BETWEEN会使用字母顺序 - 这在处理日期时并不是特别有用。

首先需要解析字符串列并尝试从每一行获取有效日期。为此,您可以使用STR_TO_DATE()函数和适当的格式代码。当然,即使看起来正确,不可解析的日期也会产生NULL

(如果还不晚,请修改您的数据库设计。)