2012-12-13 4 views
0

복잡하거나 어리석은 문제에 갇혀 있습니다. mysql에서 쿼리를 가져 오는 중 날짜 열을 같은 형식 즉, "Ymd"로 형식화 된 PHP 데이터와 비교하려고합니다. 일치하는 경우가 있지만 항상 일치하지 않습니다. 올바른 결과가 설정되었습니다.PHP 날짜와 MySQL 날짜를 비교하지 못했습니다.

이 항상 다른 트리거됩니다

<?php 

date_default_timezone_set('America/Los_Angeles'); // set timezone to our timezone 
$constantTime = time(); // get value of time in constant 
$appDate = date("Y-m-d", $constantTime); //that defines php time variable - 
$queryDate = "SELECT * FROM date WHERE date='$appDate'"; 
$resultDate = mysql_query($queryDate) or die("Sorry Website Under Maintainence"); 
$recordDate = mysql_fetch_array($resulDate); 
if ($appDate == date("Y-m-d", strtotime($recordDate['date']))) { 
    echo "MATCH "; 
    $dateID = $recordDate['dateID']; 
} else { 
    mysql_query("insert into date(date) values('$appDate')")or die("Database write error1"); 
    $resultDate = mysql_query($queryDate) or die("Sorry Website Under Maintainence"); 
    $recordDate = mysql_fetch_array($resultDate); 
    echo "NO MATCH "; 
    $dateID = $recordDate['dateID']; 
} 

, 내가 대신 ==의 난 당신이 날짜 필드를 비교한다고 가정으로 난을 strcmp

+0

왜 DATE_FORMAT와 SQL 쿼리에 마사지 날짜 -> 문자열을합니까? –

+0

SQL 쿼리가 정상적으로 작동하면 결과 집합이 제공됩니다. 그것은 단지 내가 비교를 위해 결과 집합을 사용하려고 할 때 문제가된다. 그래서 결과 후 비교는 PHP에 있습니다. –

+0

'$ appDate'와'date ("Y-m-d", strtotime ($ recordDate [ 'date']))'값은 무엇입니까? – Jim

답변

0

을 시도 === 시도, 당신은 두 가지 가능성을 가지고 현재까지 캐스트 필드 :

$queryDate = "SELECT * FROM your_table WHERE date(your_date_field) = date('$appDate')"; 

http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date

또는

는 ISO가 호환되도록 날짜 형식을 수정

$appDate = date("Y-m-d H:i:s", $constantTime); //it defines date in format 2015-03-14 15:00:00 
$queryDate = "SELECT * FROM your_table WHERE your_date_field='$appDate'"; 

참조에게 또한 this question

관련 문제