Default timestamp format und in Bruchteilen von Sekunden
Ich versuche zu formatieren, werden die Zeitstempel in meiner Postgres-Datenbank in einem bestimmten format:
YYYY-MM-DD HH24:MI:SS
By doing:
update myTable set tds = to_char(tds, 'YYYY-MM-DD HH24:MI:SS')::timestamp;
Ich es geschafft, alle bisher gespeicherten tds
zu diesem format. Jedoch, alle neu hinzugefügten Eintrag geht zurück auf: YYYY-MM-DD HH24:MI:SS.MS
da der Standard auf now()
.
Wie kann ich dies ändern, so dass neu hinzugefügte Einträge haben auch das format: YYYY-MM-DD HH24:MI:SS
?
Ich sehe, Sie wollen truncat Millisekunden Teil ? Sie können es durch die Verwendung eines triggers.
Wo ist deine Tabelle definition? Wir hätten es sehen müssen um sicher zu sein.
Wo ist deine Tabelle definition? Wir hätten es sehen müssen um sicher zu sein.
\d myTable
in psql.InformationsquelleAutor Anko | 2014-03-11
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es keine gespeicherte format in ein timestamp-Typ. Sie können Ihre Standard, um einen Zeitstempel abgeschnitten, die zweite zum Zeitpunkt der Erstellung
Oder ändern Sie die Tabelle
Wenn Sie nur nicht zeigen wollen, die Millisekunden Teil formatieren der Ausgabe
InformationsquelleAutor Clodoaldo Neto
Den Typen
timestamp
odertimestamptz
Optional eine Genauigkeit Modifikatorp
:timestamp(p)
.Zum abschneiden in Bruchteilen von Sekunden, legen Sie den Standard an:
now()::timestamp(0)
odernow()::timestamptz(0)
Was mehr ist, auch die standard-SQL Funktionen
CURRENT_TIMESTAMP
(lieferttimestamptz
),LOCALTIMESTAMP
(lieferttimestamp
) nehmen Sie die gleiche Genauigkeit Modifikator zu produzieren, sagte Typen:Das ist ein bisschen billiger und kürzer als der Aufruf
date_trunc()
.Ich gehe davon aus, dass Sie nicht Verwendung eines Zeichens geben, das wäre nicht gut. Immer speichern Zeitstempel als
timestamp
.Schließlich, um sicher, dass, ich zitiere:
gehen einen Schritt weiter und definieren Sie Ihre Spalte so. Dies wird nicht nur die cover der Standard, aber jeder und alle Werte eingetragen, die Spalte.
Sie könnte genauso gut halten
now()
als Standard-dann ist es dazu gezwungen, die zugrunde liegenden Daten Typ sowieso:Sehen @Clodoaldo Antwort Anweisungen auf
to_char()
und wieALTER TABLE
.Diesem Zusammenhang Antwort für ausführliche Informationen über Zeitstempel und Zeitzone Umgang:
Ignorieren Zeitzonen in insgesamt Rails und PostgreSQL
InformationsquelleAutor Erwin Brandstetter