Php 使用mysql选择日期
我正在使用以下代码从数据库中获取日期:Php 使用mysql选择日期,php,mysql,Php,Mysql,我正在使用以下代码从数据库中获取日期: $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=$
$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>";
}
当我选择2014年7月1日至2014年7月31日之间的范围时,结果中不包括2014年7月7日。显示了2014年7月1日和2014年7月10日
请帮助我获取上述2014年7月7日的日期范围,并告诉我2014年7月7日发生了什么。如果您有
VARCHAR
列,则BETWEEN
使用字母顺序,这在处理日期时并不特别有用
首先需要解析字符串列,并尝试从每一行获取有效日期。为此,您可以使用具有适当格式代码的函数。当然,不可解析的日期将产生NULL
,即使它们看起来正确
(如果还不算太晚,就修改数据库设计。)听起来像是在使用文本列存储那些“日期”——如果是这样,现在就修改它,并使用MySQL提供的日期/时间类型。您的日期列似乎是
VARCHAR
类型。您最好将DATE
与MySQL的正确日期格式结合使用。您应该使用DATE
或DATETIME
列作为日期,而不是VARCHAR()
。然后,您可以在2014-07-01和2014-07-07之间使用,以便我同意。这就像将数字存储为“1”、“2”、“3”并尝试将它们相加。这可能是可以做到的,但不必要的困难。
balance date
500 7/1/2014
1000 7/7/2014
800 7/10/2014
1500 8/2/2014