2011-10-11 11 views
0

dbクエリのタイムスタンプについて学ぶための基本的なクエリを試しています。私はタイムスタンプであるフィールド 'time'を持つdbを持っています。私は "時間"がキー付きの値($ t1)より大きいレコードを返すための基本的なクエリを持っています。 mytime()が正しくフォーマットされていることを確認しました(説明のためコメントアウトしています)。私は今日の日付に設定された単一のレコードを持っています。私はそれが$ t1の価値を変えるので、それが戻るかどうかを期待しています...しかしそれはありません。どこが間違っていますか?MySQLクエリの基本的なmktime()に関する問題

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

時刻を保存するには、INTの代わりにMySQLのDATETIMEを使用する必要があります。 – 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は> 2ではない、==または> =

:)

+0

申し訳ありませんが、私はツアーと言って理解していません – giles

+0

あなたは言った「今日までの単一のレコードがある」あなたは今日の時間を生成するためにMKTIMEを使用しますが、あなたは "より大きい"(> =)の代わりに "より大きい"(> =) –

+0

の両方を比較します。 MKTIMEを昨日の日付に移動するとtrueを返す引数ですが、そうではありません。 – giles