2011-01-08 7 views
0

を選択することができません私はフォーマット2011年1月8日午前6時10分11秒のような日付データベースエントリがありますが、私は、次の選択で日付を選択する必要があります。私は、PHPのmysqlは日付

$q = mysql_query("SELECT id FROM events WHERE start = '".date("Y-m-d")."'"); 

PHPは何も選択しません! データベースの時刻を2011/01/08 00:00:00の形式に設定すると、PHPは今日を選択します

時間の設定はいつでも選択してください。 THX

+0

を試してみてください。 – dqhendricks

+0

はMySQLの 'DATETIME'フィールドですか?そうでない場合は、フィールドのタイプを更新します。次に、提案された解決策の1つを参照してください。 –

+0

フィールドのタイプを現在の日付に変更するとどうなりますか? –

答えて

2

はこの

$q = mysql_query("SELECT id FROM events WHERE start LIKE '".date("Y-m-d")."%'");
は、私はあなたの日付の後に%を追加した観察し、あなたが

3
You can use this. 
SELECT * FROM <TABLE> 
     WHERE date >= ‘2005-01-07’ AND date < ‘2005-01-07’ + 
    INTERVAL 1 DAY; 

「を置換することを忘れてはいけないを探しているその日付にcorespondingあなたのテーブルで何かを持っていることを確認してみてください2005-01- 07 'に日付を入れてください。同じ質問はhere

1

一つの解決策を議論してきた(あなたの日付です?)ということだけで、日付部分とクエリを抽出することである。

SELECT id FROM events WHERE DATE(start) = ? 

問題は、このインデックスを使用していないということです。

SELECT id FROM events WHERE start BETWEEN ? AND ? 

2つの疑問符が00:00:0023:59:59とあなたの日付です:それは、このようなクエリを記述する方が良いでしょう。

2

は、あなたのフィールドには、日時フィールドであるときに、日付形式を使用して検索している次のクエリ

$q = mysql_query("SELECT id FROM events WHERE DATE_FORMAT(`start` , '%Y-%m-%d') = '".date("Y-m-d")."'");