2013-03-25 79 views

答えて

16

を参照してください。

subdate(currentDate, 1) 
26

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

WHERE `date` = CURDATE() - INTERVAL 1 DAY 
+0

現在の時刻より1分前の場合はどうなりますか? – SLaks

+0

あなたは何を得ているのか分かりません。どうぞお分かりですか? –

+1

これは 'now()'ではなく 'curdate()'でなければなりませんか? AFAIK、あなたのコードは時刻が正確に一致する場合にのみ機能します – SLaks

1

私はいつもこのコードをもう一度書き直すためにコードスニペットを参照する必要があります。

datatimesをデータベースに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; 

注:

は、ここで私は太平洋時間を調整し、昨日の選択表示に使用抜粋ですそれは見て簡単ですので、私はスニペットに変数を設定します。最終的なクエリを書くときは、通常、変数を使用しません。

関連する問題