在mysql日期时间列中搜索日期

时间:2016-10-20 06:55:13

标签: php mysql date datetime

我在 MYSQL 数据库中有一个表,其中db_date列的类型为 datetime ex: 2016-10-20 01:05:00

我使用 PHP 代码搜索不同的东西,日期就是其中之一,因为我使用日期选择器的日期是这样的 10/21/2016 米/ d / Y

为此,我使用它将此表单转换为数据库中的表单

STR_TO_DATE('".$date."','%m/%d/%Y') 

问题在于,当我使用db_date= STR_TO_DATE('".$date."','%m/%d/%Y')时,它只提供有小时和分钟的日期,第二个 00:00:00

但我想要所有日期前:如果我选择 10/20/2016 我希望选择数据库中不同时间的所有日期

我试图在mysql中使用date函数,但我没有结果  的日期(STR_TO_DATE(&#39;&#34; $日期&#34;&#39;&#39;%米/%d /%Y&#39;)) < / p>

我还尝试使用 DATE_FORMAT(STR_TO_DATE(&#39;&#34;。$ date。&#34;&#39;,&#39;%m /%d /%Y& #39)) 我没有结果

查询将与此$query=SELECT * FROM tbl_staff {$sql}

类似

这是代码

$q = array();    
    $sql = "";
    if(isset($_POST['txt_date']) && !empty($_POST['txt_date'])){  
    $date = mysqli_real_escape_string($conn,$_POST['txt_date']); 
    $q[] = " db_date=STR_TO_DATE('".$date."','%m/%d/%Y') and db_status!='Done' AND db_status!='Cancelled'";      
    } 

我该如何解决这个问题?!

1 个答案:

答案 0 :(得分:0)

首先,您可以使用datapicker中的格式来自定义日期:

$('#date').datepicker({format: 'yyyy-mm-dd'});

对于你的sql查询do(对db_date使用date())

$q[] = " DATE(db_date)= $date and db_status!='Done' AND db_status!='Cancelled'";