数据库PHP中的搜索日期

数据库PHP中的搜索日期,php,mysql,database,phpmyadmin,Php,Mysql,Database,Phpmyadmin,当我还是PHP的一名初学者时,我制作了数据库来存储日期和时间,现在我有一个大问题,我已经在数据库中存储了3000多个订单,但是当我想搜索日期时,我遇到了大麻烦,因为日期和时间都在一个字段中,我试着像那样查询where date,像“%$date”但是我没有得到结果,有人知道我现在能做什么吗 还有,我怎样才能改变整个数据库它应该是所有日期和时间分开,它不应该影响我的数据库 更新: 数据库中的数据看起来像,10/16/2012 5:00pm 感谢您的帮助。您可以执行以下操作: $date = "20

当我还是PHP的一名初学者时,我制作了数据库来存储日期和时间,现在我有一个大问题,我已经在数据库中存储了3000多个订单,但是当我想搜索日期时,我遇到了大麻烦,因为日期和时间都在一个字段中,我试着像
那样查询where date,像“%$date”
但是我没有得到结果,有人知道我现在能做什么吗

还有,我怎样才能改变整个数据库它应该是所有日期和时间分开,它不应该影响我的数据库

更新:

数据库中的数据看起来像,
10/16/2012 5:00pm


感谢您的帮助。

您可以执行以下操作:

$date = "2012-03-08";
$sql = "SELECT * FROM table WHERE date => '$date 00:00:00' AND date =< '$date 23:59:59'
时间


为什么是约会?你应该做相反的事

WHERE date LIKE "".$date."%"

针对您问题的各个部分:

1。在当前架构中查找所需的日期

根据您的编辑,使用:

 <?php

 $query = "SELECT * FROM table_name WHERE `date` LIKE '{$date}%'";

 ?> 

如果是DATETIME字段,可以使用

WHERE DATE(datetime_field) = '01-01-2012';
或者(更好,因为它可以使用索引)


WHERE datetime\u field>='01-01-2012 00:00:00'和datetime\u field这对我来说很有用

$date=“2018-05-13”


“从$username中选择*,其中注册日期类似“%$date%””

你能举一个数据的例子,数据是如何从数据库返回的吗?日期和时间不需要分开,但是我想到了一个
DATETIME
列,如果我读对了,你似乎使用了一个varchar/其他字符串/基于字符的列……你的数据库应该使用一个单一的、组合的DATETIME格式(unix时间戳作为一个长整型,不管怎样,只要标准的SQL日期/时间函数对它起作用,它实际上并不重要)。然后,如果你愿意,你可以搜索“7月17日到8月15日之间”。@Wrikken是的,你读对了,它是一个varchar类型谢谢这个好主意,但是Andrew Kozak也回答了我的第二个问题
 <?php

 $query = "SELECT * FROM table_name WHERE `date` LIKE '{$date}%'";

 ?> 
<?php

$query = "SELECT * FROM table_name WHERE `date` LIKE '%{$date}%'";

?>
WHERE DATE(datetime_field) = '01-01-2012';
WHERE datetime_field >= '01-01-2012 00:00:00' AND datetime_field <= '01-01-2012 23:59:59';