我使用以下代码从我的数据库中获取 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日的情况。
答案 0 :(得分:0)
如果您有VARCHAR
列,则BETWEEN
会使用字母顺序 - 这在处理日期时并不是特别有用。
首先需要解析字符串列并尝试从每一行获取有效日期。为此,您可以使用STR_TO_DATE()函数和适当的格式代码。当然,即使看起来正确,不可解析的日期也会产生NULL
。
(如果还不晚,请修改您的数据库设计。)