0

初心者の質問です。昨日の日付で日付が付けられているデータベース内のすべてのレコードを検索する必要があります。この列は DATE タイプです。

PHPで:

$yesterday =  date('Y-m-d', strtotime($Date. ' - 1 day'));

これにより、期待どおり「2013-04-11」が生成されます。しかし、私がしようとすると

$gamesQuery = mysqli_query($con,"SELECT * FROM scores WHERE home_team = $teamId AND game_date = $yesterday");

一致が得られません。私のデータベースには間違いなく、game_date = 2013-04-11 のレコードがあります。

(同様のSOの質問がたくさん見つかりましたが、役立つほど基本的なものはありません)。

4

5 に答える 5

2

これを使用します(SQLのみ):

SELECT * 
  FROM scores 
 WHERE home_team = $teamId 
   AND DATE(game_date) = DATE(DATE_SUB(NOW(), INTERVAL 1 DAY))
于 2013-04-12T15:54:06.380 に答える
1

試す:

 $gamesQuery = mysqli_query($con,"SELECT * FROM scores WHERE home_team = $teamId AND DATE(game_date) = '{$yesterday}'");

私はこれを多くのmysql日付関連のクエリに使用しています。

于 2013-04-12T15:51:58.710 に答える
0

あなたの問題は、phpとmysqlでの日付の使用方法と保存方法の違いだと思います。http://www.richardlord.net/blog/dates-in-php-and-mysqlを試してください

これはあなたに答えを与えるだけでなく、答えを教えてくれます ;)

于 2013-04-12T15:51:33.147 に答える
0

私も正しいフォーマットを設定しようとします:

$yesterday =  date('Y-m-d', strtotime($Date. ' - 1 day'));
$gamesQuery = mysqli_query($con,"SELECT * FROM scores WHERE home_team = ".$teamId." AND date_format(game_date,'%Y-%m-%d') = ".$yesterday);
于 2013-04-12T15:51:43.643 に答える