Wenn ich ein Datum wie dieses:MySQL wählen gestrige Datum
'2013-03-25'
Und ich möchte eine MySQL-Abfrage mit WHERE
ist „gestern“ schreiben, wie ich es tun?
Wenn ich ein Datum wie dieses:MySQL wählen gestrige Datum
'2013-03-25'
Und ich möchte eine MySQL-Abfrage mit WHERE
ist „gestern“ schreiben, wie ich es tun?
Ein einfacher Weg, Datum zu erhalten, gestern ist subdate()
Funktion zu verwenden:
subdate(currentDate, 1)
Dies sollte es tun:
WHERE `date` = CURDATE() - INTERVAL 1 DAY
Ich glaube, du bist:
DATE_ADD(date_column, INTERVAL -1 DAY)
siehe https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html
Ich muss mich immer auf ein Code-Snippet beziehen, um meinen Kopf wieder darum zu wickeln.
Es ist üblich, Datumsangaben in UTC in der Datenbank zu speichern. Bei der Erstellung von Berichten müssen die Zeiten jedoch normalerweise für eine bestimmte Zeitzone angepasst werden.
Hier ist das Snippet ich gestern zu zeigen, die Auswahl, für Pacific Time eingestellt:
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;
Hinweis: ich die Variablen im Code-Schnipsel so eingestellt, dass es einfacher ist, zu betrachten. Wenn ich die letzte Abfrage schreibe, verwende ich normalerweise nicht die Variablen.
Mögliches Duplikat von [MySQL das Datum von gestern auswählen] (http://stackoverflow.com/questions/7146828/mysql-selecting-yesterdays-date) – derobert