in postgres kann man die Standard-Formatierung für einen timestamp, per session oder Global?
In Postgres, ist es möglich, ändern Sie die Standard-format Maske für einen timestamp?
Recht, jetzt kommt wieder als
2012-01-03 20:27:53.611489
Ich würde gerne die Auflösung zu minute wie diese:
2012-01-03 20:27
Ich weiß, ich kann auf die einzelnen Spalten mit to_char() as
oder ausgezogen mit einem substr()
von der empfangenden app, aber dass es richtig formatiert zunächst würde eine Menge Arbeit sparen und reduzieren die Menge der Fehler.
- die client-Anwendung verwenden Sie?
- Prototyp in php, moving, node.js in etwa 6 mo
- Dann wäre dies eine php-Einstellung zu ändern, nicht eine Postgres-Einstellung.
- könntest du Recht haben. hatte gehofft, einige
locale
wie Einstellung vorhanden sein könnten.locale
Formaten, aber die Formate sind behoben.
InformationsquelleAutor cc young | 2012-01-04
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
In postgres, Sie kann ändern Sie das Standard-format der Maske für die datetimes - mit der
set datestyle
option, die verfügbaren Optionen finden Sie hier (siehe 8.5.2. Datum/Uhrzeit-Ausgabe).Leider, alle verfügbaren Optionen umfassen die Anzahl von Sekunden, deshalb müssen Sie neu formatieren Sie entweder die Abfrage oder den code der Anwendung (falls zutreffend).
In PostgreSQL, Die Formatierung von Zeitstempeln ist unabhängig von der Lagerung. Eine Antwort ist die Verwendung
to_char
und format des Zeitstempels in welchem format auch immer Sie brauchen, im moment Sie es brauchen, wie diese:Aber wenn Sie müssen, legen Sie die Standard-Formatierung:
Ändern Sie die postgresql timestamp-format weltweit:
Werfen Sie einen Blick auf Ihre Zeitzone, führen Sie dies als eine sql-Abfrage:
So, wenn Sie drucken aus current_timestamp, sehen Sie dieses:
Den
-04
am Ende ist Ihre Zeitzone relativ zu UTC. Sie können ändern Sie Ihre Zeitzone mit:Dann:
So bemerken die
-07
es, das bedeutet, dass wir Pacific ist 7 Stunden entfernt von UTC. Wie kann ich machen, dass unschöne timezone Weg gehen? Eine Möglichkeit ist, nur um eine Tabelle standardmäßig einen Zeitstempel ohne Zeitzone:Dann, wenn Sie einen Zeitstempel hinzufügen, um die Tabelle, und wählen Sie es aus
yay, keine Zeitzone, die auf das Ende. Aber Sie wollen mehr Kontrolle darüber, wie der Zeitstempel zeigt standardmäßig! Sie könnte so etwas tun:
Es ist ein Textfeld, das gibt Ihnen mehr Kontrolle über wie zeigt es sich standardmäßig, wenn Sie ein
select somecolumns from sometable
. Hinweis Sie können eine Zeichenfolge umzuwandeln, um Zeitstempel:Könnten Sie warf einen current_timestamp zu
timestamp
entfernt die Zeitzone:Können Sie loszuwerden, die Zeitzone so:
Aber wenn Sie wirklich wollen, Zeitzone zurück, die Sie dies tun können:
Können Sie reißen heraus, was Sie wollen mit Extrakt:
Und diese Monstrosität:
to_char()
wird verwendet, um einen string-literal. Wenn Sie möchten eine andere timestamp-Wert, Verwendung:Für eine Eingang Maske, die Sie verwenden können:
Cast zu
timestamp without time zone
durch Anhängen::timestamp
.Meines Wissens gibt es keine Einstellung in PostgreSQL würde trim-Sekunden aus Zeitstempel-Literale, die standardmäßig.
to_char()
auf jeder Spalte jeder wählen Sie.to_char()
connot helfen Sie entweder. Sie kann nur kürzen mit ihm. Eh, das klingt wie ein job für den client, nicht für die Datenbank. a_horse_with_no_name ist auf dem richtigen Weg.to_char()
- zum Glück ist das Verhalten erwartet