PostgreSQL - Datum und Uhrzeit relativ zum heutigen Tag prüfen
Dieses Tutorial zeigt, wie Sie das Datum und die Uhrzeit relativ zum heutigen Tag in PostgreSQL überprüfen.
PostgreSQL - Datum und Uhrzeit relativ zum heutigen Tag prüfen
Bei der Verwendung von PostgreSQL müssen Benutzer in ihren Abfragen häufig ein Datum relativ zum heutigen Tag verwenden. PostgreSQL bietet effiziente Funktionen und Methoden, um die aktuelle Uhrzeit und das aktuelle Datum zu erhalten.
Wenn Sie Daten und Zeit relativ zum heutigen Tag überprüfen, können Sie durch Befolgen der richtigen Schritte die aktuelle Region ändern, um einen anderen Zeitstempel zu erhalten. Einige Funktionen erledigen die Aufgabe, aber es ist wichtig, die Funktionalität zu verstehen, um sie richtig zu verwenden.
Beginnen wir mit der Funktion NOW()
weiter unten.
PostgreSQL NOW()
-Funktion
Wenn Sie das aktuelle Datum und die aktuelle Uhrzeit in Ihrer Abfrage verwenden müssen, funktioniert die Funktion NOW()
, um Ihnen genau das zu geben. Als Ausgabe ist der Rückgabetyp von NOW()
ein timestamp
mit der im Folgenden gezeigten Zeitzone:
SELECT NOW();
Ausgang:
2022-09-14 13:21:36.175627+07
Die Funktion NOW()
muss das aktuelle Datum und die Uhrzeit basierend auf der auf dem Datenbankserver eingestellten Zeitzone zurückgeben. Wenn wir beispielsweise die Zeitzone auf Los Angeles setzen, gibt die Funktion die aktuelle Uhrzeit und das Datum von Los Angeles zurück.
Es wird im folgenden Beispiel angezeigt:
SET TIMEZONE='America/Los_angeles';
SELECT NOW();
Ausgang:
2022-09-14 02:16:21.759315-07
Im obigen Beispiel ist der Rückgabewert von NOW()
das heutige aktuelle Datum und die aktuelle Uhrzeit, angepasst an die neue zugewiesene Zeitzone. Es ist auch möglich, das aktuelle Datum und die aktuelle Uhrzeit von PostgreSQL heute ohne Zeitzone zu erhalten, wenn Sie es explizit wie folgt umwandeln:
SELECT NOW()::timestamp;
Ausgang:
2022-09-14 02:16:21.324535
Die NOW()
-Funktion ist ziemlich flexibel; Es ermöglicht Ihnen, Daten und Zeit aus der Zukunft zu erhalten. Siehe folgendes Beispiel:
SELECT (NOW() + interval '1 hour') AS after_one_hour;
Ausgang:
2022-09-14 03:16:21.759315-07
Diese Funktionalität ist nicht auf Stunden beschränkt; wir können es auf Tage und Minuten erweitern. Sehen Sie sich die folgenden Codeausschnitte an:
SELECT (NOW() + interval '1 day') AS after_one_day;
Ausgang:
2022-09-15 02:16:21.743315-07
Es folgt ein weiterer Codeblock:
SELECT (NOW() - interval '4 hours 15 minutes') AS after_fourhrs_15min;
Ausgang:
2022-09-14 10:01:21.776315-07
Verwenden Sie die NOW()
-Funktion als Standardwerte
Beim Erstellen Ihrer Datenbanktabellen können Sie NOW()
als Standardwert für jede Tabellenspalte verwenden. Erstellen Sie zuerst eine neue Tabelle mit der Spalte created_at
. Setzen Sie ihn auf den Standardwert der Funktion NOW()
.
CREATE TABLE table_name(
created_at TIMESTAMPTZ DEFAULT NOW()
);
Sobald Sie Daten in die Spalten der Tabelle eingefügt und mit dem Befehl SELECT
angezeigt haben, enthält die Spalte created_at
Zeitstempel für jeden Dateneintrag.
Alternativen zu NOW()
in PostgreSQL
Neben der Funktion NOW()
gibt es mehrere andere Funktionen, die Sie verwenden können, um das aktuelle Datum und die Uhrzeit zusammen mit einer Zeitzone zu erhalten. Verwenden Sie die Funktion CURRENT_TIME
oder CURRENT_TIMESTAMP
, um ähnliche Ergebnisse wie die Funktion NOW()
zu erhalten.
Sie können sie auf folgende Weise verwenden:
SELECT CURRENT_TIMESTAMP, CURRENT_TIME;
Ausgang:
2022-09-14 02:16:21.759315-07 | 02:16:21.759315-07
Sie können den aktuellen Zeitstempel auch ohne Zeitzone mit Funktionen wie LOCALTIME
& LOCALTIMESTAMP
erhalten.
SELECT LOCALTIMESTAMP, LOCALTIME;
Ausgang:
2022-09-14 02:16:21.759315 | 02:16:21.759315
Wenn es ein Ereignis gibt, bei dem Sie sich nur für das Datum und nicht für die Uhrzeit interessieren, ersetzen Sie CURRENT_DATE
durch NOW()
, und es funktioniert wie folgt:
SELECT * FROM tablename where dateval > NOW() -interval '1 year';
Jetzt durch CURRENT_DATE
ersetzen:
SELECT * FROM tablename where dateval > CURRENT_DATE() -interval '1 year';
Es gibt nur das Datum zurück, nicht die Uhrzeit. NOW()
und alle damit verbundenen oben erwähnten Funktionen geben die Startzeit der aktuellen Transaktion zurück. Die zurückgegebenen Werte dieser Funktion sind dieselben wie innerhalb der Transaktion.
Das folgende Beispiel mag eventuelle Missverständnisse ausräumen:
postgres =# BEGIN;
BEGIN
postgres=# SELECT NOW();
2022-09-14 02:16:21.759315-07 //output
postgres=# SELECT pg_sleep(2);
postgres=# SELECT NOW();
2022-09-14 02:16:21.759315-07 //output
postgres=# COMMIT
COMMIT
Hier rufen wir die Funktion während der gesamten Transaktion auf, und die Rückgabewerte ändern sich nicht jedes Mal.
Wenn Sie jedoch das aktuelle Datum und die Uhrzeit benötigen, die während der Transaktion aktualisiert werden, macht TIMEOFDAY
dies möglich. Wenn Sie zum Beispiel denselben Code wie die obige Transaktion ausführen, werden das aktuelle Datum und die Uhrzeit nach pg_sleep
für 2
Sekunden erhöht.
Wir hoffen, dass dieses Tutorial Ihnen geholfen hat, die zahlreichen Funktionen zu lernen, die bei der Funktion NOW()
helfen, und wie Sie sie ausführen.
Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!
GitHub