2011-10-11 2 views
0

Я пытаюсь выполнить базовый запрос, чтобы узнать о временных меток в db-запросах. У меня есть db с полем «время», которое является меткой времени. У меня есть базовый запрос для возврата записей, где «время» больше, чем ключевое значение ($ t1). Я проверил, что mytime() отформатирован правильно (прокомментирован для иллюстрации). У меня есть одна запись, установленная на сегодняшнюю дату. Я ожидаю, что он вернется или нет, поскольку я изменю значение $ t1 ... но это не так. где я иду не так?Проблемы с базовым mktime() в запросе MySQL

date_default_timezone_set('Europe/London'); 
$year = '2011'; 
    $month = '10'; 
    $day = '11'; 
    $t1 = mktime(0,0,0, $month, $day, $year); 
    //echo date("d/m/y : H:i:s", $t1); // this works fine! 


    mysql_select_db(DATABASE_NAME, $connection); 
    $client = "demo/"; 

    $result = mysql_query 
    (
     "SELECT * 
     FROM " .SESSIONDB. " 
     WHERE client = '$client' 
     AND page = 'interaction.php' 
     AND time > '$t1' 
     " 
    ); 
+0

Для хранения времени вы должны использовать DATETIME MySQL вместо INT. – Mike

+0

Но я буду хотеть способность в будущем обрабатывать часовые пояса, так что мне нужна метка времени? – giles

+0

Вы правы. Тем не менее, MySQL также имеет формат TIMESTAMP (http://dev.mysql.com/doc/refman/5.0/en/timestamp.html) – Mike

ответ

0

Вы установили рекорд в

mktime(0,0,0, $month, $day, $year); 

и вы установите переменную

$t1 = mktime(0,0,0, $month, $day, $year); 

Но вы сравните два используя> (больше) ... 2 не> 2, это == или> =

:)

+0

Прошу прощения, я не понимаю, что говорит тур – giles

+0

Вы сказали «У меня есть одна запись, установленная на сегодняшний день». и вы используете MKTIME для генерации сегодняшнего времени, но вы сравниваете оба с «больше чем» (>) вместо «больше или равно» (> =) –

+0

Я получаю ваш момент (извините за неясность), Но я ожидаю аргумент для возврата true, если я переведу MKTIME на вчерашнюю дату, но это не так. – giles