11

私がこのような日付を持っている場合:

'2013-03-25'

そして、MySQLクエリを「昨日」で書きたいのですがWHERE、どうすればよいですか?

4

4 に答える 4

27

これはそれを行う必要があります:

WHERE `date` = CURDATE() - INTERVAL 1 DAY
于 2013-03-25T19:10:29.120 に答える
22

昨日の日付を取得する簡単な方法は、subdate()関数を使用することです。

subdate(currentDate, 1)
于 2013-03-25T19:11:52.153 に答える
1

私はあなたが探していると思います:

DATE_ADD(date_column, INTERVAL -1 DAY)

https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.htmlを参照してください

于 2013-03-25T19:10:55.667 に答える
1

これをもう一度頭に巻くには、常にコードスニペットを参照する必要があります。

日時をUTCでデータベースに保存するのが通例です。ただし、通常、レポートを生成するときは、特定のタイムゾーンに合わせて時間を調整する必要があります。

太平洋時間に合わせて調整された、昨日の選択を示すために使用するスニペットは次のとおりです。

SET @date_start = DATE_SUB((CURDATE() - INTERVAL 1 DAY), INTERVAL 8 HOUR);
SET @date_end = DATE_SUB(CURDATE(), INTERVAL 8 HOUR);

SELECT
    projects.token,
    projects.created_at as 'UTC created_at',
    DATE_SUB(projects.created_at, INTERVAL 8 HOUR) as 'Pacific created_at'
FROM
    projects
WHERE
    projects.created_at BETWEEN @date_start AND @date_end;

注:見やすくするために、スニペットで変数を設定しました。最終的なクエリを作成するときは、通常、変数を使用しません。

于 2014-09-02T21:03:58.940 に答える