2015-05-11 56 views
0

我有考勤記錄數據庫無法檢索日期

ID | emp_id | attendance_date。

我插入attendance_date by varchar(200)。我想要檢索startdateenddate之間的日期,如果我選擇datetime picker。我的日期格式爲m/d/Y。 如果我檢索04/1/2015 and 04/30/2015,它不顯示。但如果我檢索 12/1/2014 and 12/31/2014,記錄顯示。問題是月。它在月前有不必要的零。我該怎麼做? 請幫幫我嗎?數據庫就是這樣。 ID EMP_ID attendance_date 1 1 2014年10月4日10:36 2 1 2014年10月30日9:36

attendanceRecord.php

<form enctype="multipart/form-data" method="post" class="form-inline" role="form" action="attendance_search.php">  

    <!--Start Date--> 
     <div class=""> 
      <div class="form-group required"> 
        <label for="startdate" class="control-label">Start Date:</label>         
        <input class="form-control" placeholder="Choose Date " type="text" id="datepicker-8" name="startdate" required="required" />      
       </div> 
     </div><br/><br/> 

     <!--End Date--> 
     <div class=""> 
      <div class="form-group required"> 
        <label for="enddate" class="control-label">End Date:</label>        
        <input class="form-control" placeholder="Choose Date " type="text" id="datepicker-9" name="enddate" required="required" /> 

       </div>    
     </div> 
     <!--Create Button-->  
    <div class=""> <br/>   
     <input class="btn btn-success" type="submit" value="Search" />   
    </div> 
    </form> 

**attendance_search.php** 





<form method="post" name="salaryform" action="" class="form-vertical">   

       <div class="table table-hover">  
       <table border="1" cellspacing="0" class="table" >     
        <tr class="success" >      
         <th>Employee ID</th>      
         <th>Date</th>     
         <th>Timein Timeout</th>                
        </tr> 
        <?php 
        include 'connect.php'; 
        error_reporting(E_ALL^E_NOTICE);    
                      if(!empty($_POST)){     
        $startdate= mysql_real_escape_string(date("m/d/Y H:i:s",strtotime($_POST["startdate"]))); 
        $enddate= mysql_real_escape_string(date("m/d/Y H:i:s",strtotime($_POST["enddate"])));     


        $sql="SELECT * FROM attendance2 WHERE attendance_date between '".$startdate."' and '".$enddate."'";     

        $retval = mysql_query($sql); 
        if (!$retval) { 
         die('Could not get data: ' . mysql_error()); 
        } 
        while ($row = mysql_fetch_array($retval, MYSQL_ASSOC)) { 
         echo '<tr class="active">'; 
         echo '<td >'.$row['emp_id'].'</td>';              
         echo '<td>'.$row['attendance_date'].'</td>';     
         echo '<td>'.$row['timein_timeout'].'</td>'; 

        } 


        echo '</tr>'; 
        echo '</table>';         
        } 

        ?>   
       </table> 

      </div>    
     </form>  
+0

請向我們展示sqlfiddle中您的attendance2表的結構與示例數據。在運行查詢之前輸入'print $ sql',並將其發佈到此處。 – user4035

回答

0

如果你不需要的時候的開始日期和結束日期,那麼你可以做這樣的事情,

$startdate = mysql_real_escape_string(date("m/d/Y",strtotime($_POST["startdate"]))); 
$enddate = mysql_real_escape_string(date("m/d/Y",strtotime($_POST["enddate"])));     


$sql="SELECT * FROM attendance2 WHERE date(attendance_date) between '".$startdate."' and '".$enddate."'";