0
Ich habe eine Tabelle ‚ad‘ in meinem Postgres DB, enthalten ‚start‘ und ‚end‘ Spalten wie:Wie partitionieren Sie die Zeitstempeldauer in mehreren Zeilen mit PostgreSQL 9.5?
ID Start End
1 2003-06-07 00:00:00 2004-09-30 23:59:59
Wie kann ich diese Dauer brechen (2003-2004) in zwei Teilen, so dass die Start- und Enddaten (Zeitstempel) sollten im selben Jahr so bleiben?
ID Start End
1_2003 2003-06-07 00:00:00 2003-12-31 23:59:59
1_2004 2004-01-01 00:00:00 2004-09-30 23:59:59
Ich habe mich gefragt, ob Fensterfunktion hilfreich wäre, um dies zu erreichen? Ich benutze PostgreSQL Version 9.5 (x64).
Thank you! Was ist, wenn die Spalten 'Start' und 'Ende' in meiner Postgres-Datenbank anfänglich als Textzeichenfolge gespeichert sind, d. H. Zeichenvariation (20) & alpha; Muss ich ihren Datentyp vorher CAST? –
Sie sollten Varchar in Timestamp umwandeln, unter der Annahme, dass die Varchar-Werte natürlich ein korrektes Format haben. Ich würde vorschlagen, die Spaltentypen in der Tabelle zu ändern, um das Leben in der Zukunft zu erleichtern. – klin
Für Ihre Beispieldaten funktionierte die Abfrage gut. Aber für meine Daten bekomme ich ERROR: Spaltenreferenz "y" ist mehrdeutig. Kannst du mir sagen warum? Ich habe die Spaltentypen mit der Funktion to_timestamp() in den Zeitstempel geändert. –