Problem:
Sie möchten das aktuelle Datum und die Uhrzeit in einer PostgreSQL-Datenbank abrufen. Sie benötigen den Zeitzonenoffset nicht.
Lösung:
Wir verwenden die Funktion LOCALTIMESTAMP
um das aktuelle Datum und die Uhrzeit ohne Zeitzoneninformationen zu erhalten:
SELECT LOCALTIMESTAMP ;
Hier ist das Ergebnis der Abfrage:
2019-09-24 20:10:58.977914
Diskussion:
Die PostgreSQL-Funktion LOCALTIMESTAMP
gibt das aktuelle Datum und die aktuelle Uhrzeit (des Computers, auf dem diese Instanz von PostgreSQL ausgeführt wird) als Zeitstempel zurück Wert. Es verwendet das 'YYYY-MM-DD hh:mm:ss.nnnnnnn ' Format, wobei:
- JJJJ ist eine 4-stellige Jahreszahl.
- MM ist ein zweistelliger Monat.
- DD ist ein zweistelliger Tag.
- hh ist eine zweistellige Stunde.
- mm ist eine zweistellige Minute.
- ss ist eine zweistellige Sekunde.
- nnnnnn sind Sekundenbruchteile (von null bis 6-stellig).
Wie Sie sehen, hat diese Funktion keine Klammern. Wenn Sie Datum und Uhrzeit jedoch mit einer bestimmten Genauigkeit anzeigen möchten, setzen Sie eine ganze Zahl von 0 bis 6 als Argument in die Klammern. Dadurch werden Datum und Uhrzeit mit der gewünschten Anzahl von Sekundenbruchteilen zurückgegeben. Beispiel:LOCALTIMESTAMP(1)
bezeichnet nur einen Bruchteil einer Sekunde (d. h. eine Nachkommastelle); 2 gibt zwei Stellen zurück usw. Die Standardgenauigkeit ist 6, was auch die maximale Anzahl von Sekundenbruchteilen ist; Dies ist, was Sie erhalten, wenn Sie überhaupt keine Klammern verwenden. Sehen Sie sich das nächste Beispiel an:
SELECT LOCALTIMESTAMP(0) ;
Hier ist das Ergebnis der Abfrage:
2019-09-24 20:10:58
Dieses Ergebnis enthält keine Sekundenbruchteile, weil wir 0 als Argument angeben.
Diese Funktion gibt die Zeit zurück, zu der die aktuelle Transaktion gestartet wurde. Der Unterschied zwischen LOCALTIMESTAMP
und CURRENT_TIMESTAMP
ist das der LOCALTIMESTAMP
beinhaltet nicht den Zeitzonen-Offset.