PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

So erhalten Sie das aktuelle Datum und die aktuelle Uhrzeit (ohne Zeitzone) in PostgreSQL

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.