php
  • mysql
  • date
  • 2013-07-17 2 views 0 likes 
    0

    내 경우에는 mySQL에 날짜 필드가 있는데 아래 코드를 통해 변수 값을 가져 오는 데 사용되었습니다. 이것은 "08-28-1989"와 같은 완전한 날짜를 질의 할 때 맞습니다.날짜에 월, 일, 연도를 묻는 질문

    MySQL을 :

    SELECT COUNT(*) 
    FROM content 
    where dateReceived='{$approved_date}' 
    and description='{$description}' 
    

    PHP는 : 내가 사용자에게 입력 만 "08"를 말한다면 나는 더 동적으로 만들 수있는 방법



    $approved_year = $_POST["approved_year"]; 
        $approved_month = $_POST["approved_month"]; 
        $approved_day = $_POST["approved_day"]; 
        $approved_dt = strtotime($approved_year."-".$approved_month."-".$approved_day); 
            $approved_date = date("Y-m-d",$approved_dt); 
    
    (월 전용) 다음 모든 레코드를 표시 그 달에 상관없이 일과 년에 상관없이. 또는 사용자가 월 및 연도를 입력하면 데이터베이스에 쿼리합니다.

    여기 또한 내 HTML이다 : MySQL의 측면에 그것을 할 수

    <p> 
          Date Approved 
          <select name="approved_month"> 
          <?php 
           $month = array(" ","January","February","March","April", 
               "May","June","July","August", 
               "Septembe","October","November","December"); 
           for($x=0;$x<12;$x++){ 
            echo "<option value=\"".$x."\">".$month[$x]."</option>"; 
           } 
          ?> 
          </select> 
          <input type="text" name="approved_day" value="" size="2" /> 
          <input type="text" name="approved_year" value="" size="10" /> 
    </p> 
    
    +1

    결과를 날짜별로 가져 오는 데 사용중인 데이터베이스 쿼리를 표시하십시오. –

    답변

    1

    한 가지 방법은 MONTH()YEAR() 기능을 사용하는 것입니다.

    SELECT * 
        FROM Table1 
    WHERE MONTH(date) = 5; 
    
    SELECT * 
        FROM Table1 
    WHERE MONTH(date) = 5 
        AND YEAR(date) = 2013; 
    

    참고 이러한 접근법 (date 열 기능을 사용하여)의 결점이없는 지수 date 컬럼에서 사용되지 않는다는 것이다.

    두 번째 쿼리를 사용하여 다시 작성 될 수 BETWEEN

    SELECT * 
        FROM Table1 
    WHERE date BETWEEN '2013-05-01' AND '2013-05-31'; 
    
    먼저 날짜와 같은 쿼리에 대한 해당 월의 마지막 날짜가 쉽게 여기 relative date formats

    와 PHP에 내장 할 수

    SQLFiddle 데모

    1

    날짜를 가져 와서 데이터베이스의 개별 필드로 나눌 수 있습니다. 일, 월, 년. 폭발로 날짜를 브레이크 :

    $date = date("Y-m-d"); 
    $explodedDate = explode("-", $date); 
    $year = $explodedDate[0]; 
    $month = $explodedDate[1]; 
    $day = $explodedDate[2]; 
    

    그런 다음 별도의 날짜가 데이터베이스에 속성을 삽입 한 다음 사용자의 입력에 따라 필요한 결과를 표시 mysqli 쿼리를 사용할 수 있습니다. 예 :

    query = "SELECT * FROM table WHERE month = $userEnteredMonth"; 
    
    관련 문제