Begrenzte Listendarstellung

Fragen und Probleme rund um die Abfragespache SQL.
simar
Neuer Benutzer
Beiträge: 29
Registriert: Di 9. Okt 2018, 17:40

Re: Begrenzte Listendarstellung

Beitrag von simar » Mi 10. Okt 2018, 18:07

die Idee ist nicht von mir, die Datenbank wurde mir so zu Verfügung gestellt.
Alternativ gibt es noch eine andere Tabelle mit einer "beg_timestamp" Spalte aber da komm ich auch nicht weiter. :(

simar
Neuer Benutzer
Beiträge: 29
Registriert: Di 9. Okt 2018, 17:40

Re: Begrenzte Listendarstellung

Beitrag von simar » Mi 10. Okt 2018, 18:12

date_time character varying(100)
beg_timestamp bigint

castorp
Erfahrener Benutzer
Beiträge: 1070
Registriert: Sa 27. Jun 2009, 22:24
Wohnort: Bayern

Re: Begrenzte Listendarstellung

Beitrag von castorp » Mi 10. Okt 2018, 20:59

Einmal nur möchte ich es erleben, dass diejenigen die solche schwachsinnigen "Design" Entscheidungen treffen auch damit bestraft werden sie zu benützen....

Aber nachdem Du nunmal damit leben musst:

Du kannst mit to_date() oder to_timestamp() einen String in ein Datum verwandeln, z.B.:

Code: Alles auswählen

to_timestamp('Fri Oct 05 2018 19:52:14 GMT+0200 (CEST)', 'Dy Mon DD YYYY HH24:MI:SS Z')
oder gleich in ein DATE:

Code: Alles auswählen

select to_date('Fri Oct 05 2018 19:52:14 GMT+0200 (CEST)', 'Dy Mon DD YYYY HH24:MI:SS Z')
(Statt dem String musst Du halt Deine Spalte übergeben)

Die "bigint" Spalte speichert vermutlich ein "Unix epoch" - das ist im Prinzip die Anzahl der Sekunden seit dem 1.1.1970. Das kannst Du auch in einen vernünftige Timestamp Wert umwandeln:

Code: Alles auswählen

to_timestamp(1538761934::bigint)
liefert auch den 05.10.2018 19:52:14

Das kann man dann mittels ::date wieder zu einem Datum verwandeln:

Code: Alles auswählen

to_timestamp(1538761934::bigint)::date[/date]
A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'

akretschmer
Erfahrener Benutzer
Beiträge: 7513
Registriert: So 29. Okt 2006, 13:35
Wohnort: Kaufbach, Sachsen, Germany, Germany
Kontaktdaten:

Re: Begrenzte Listendarstellung

Beitrag von akretschmer » Mi 10. Okt 2018, 21:20

castorp hat geschrieben:
Mi 10. Okt 2018, 20:59
Einmal nur möchte ich es erleben, dass diejenigen die solche schwachsinnigen "Design" Entscheidungen treffen auch damit bestraft werden sie zu benützen....

Du sprichst mir aus dem Herzen ...

Andreas
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

simar
Neuer Benutzer
Beiträge: 29
Registriert: Di 9. Okt 2018, 17:40

Re: Begrenzte Listendarstellung

Beitrag von simar » Do 11. Okt 2018, 16:09

der der das Verbrochen hat meldet sich leider nicht mehr!!

das mit dem Datum bring ich nicht auf die Reihe, vielleicht haben wir uns falsch verstanden.
zur Vereinfachung meiner Selects würde ich gerne mit einen Datum in dieser Art arbeiten tt.mm.jjjj ich hab aber in meinen Tabellen das Datum in Form von date_time= Fri May 11 2018 20:01:41 GMT+0200 (CEST) oder als beg_timestamp=1520373303652

akretschmer
Erfahrener Benutzer
Beiträge: 7513
Registriert: So 29. Okt 2006, 13:35
Wohnort: Kaufbach, Sachsen, Germany, Germany
Kontaktdaten:

Re: Begrenzte Listendarstellung

Beitrag von akretschmer » Do 11. Okt 2018, 16:22

Code: Alles auswählen

test=*# select regexp_replace(regexp_replace('Fri May 11 2018 20:01:41 GMT+0200 (CEST)','\(.*\)',''),'GMT+','')::timestamptz;
     regexp_replace     
------------------------
 2018-05-11 20:01:41+02
(1 row)

--
--
--

test=*# SELECT TIMESTAMP WITH TIME ZONE 'epoch' + 1130317518.61997 * INTERVAL '1 second';
           ?column?           
------------------------------
 2005-10-26 11:05:18.61997+02
(1 row)
Du solltest das in den Tabelle am besten direkt ändern ...
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

simar
Neuer Benutzer
Beiträge: 29
Registriert: Di 9. Okt 2018, 17:40

Re: Begrenzte Listendarstellung

Beitrag von simar » Do 11. Okt 2018, 16:28

wie kann ich das in der Tabelle direkt ändern, macht das überhaupt Sinn denn neue Einträge werden ja wie bisher weitergeschrieben?

akretschmer
Erfahrener Benutzer
Beiträge: 7513
Registriert: So 29. Okt 2006, 13:35
Wohnort: Kaufbach, Sachsen, Germany, Germany
Kontaktdaten:

Re: Begrenzte Listendarstellung

Beitrag von akretschmer » Do 11. Okt 2018, 16:34

naja, wenn das weiter so reingeschrieben wird dann macht es keinen Sinn... Ansonsten: ALTER TABLE wäre Dein Freund...
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

simar
Neuer Benutzer
Beiträge: 29
Registriert: Di 9. Okt 2018, 17:40

Re: Begrenzte Listendarstellung

Beitrag von simar » Do 11. Okt 2018, 16:43

hab noch eine andere Frage, wie verhält sich das mit der "id" die die Datenbank ja selbst vergibt, wenn ich Neue Daten aus einer CSV Datei mit copy in die bestehende Tabelle einfügen möchte?
ERROR: FEHLER: NULL-Wert in Spalte »shooters_id« verletzt Not-Null-Constraint

akretschmer
Erfahrener Benutzer
Beiträge: 7513
Registriert: So 29. Okt 2006, 13:35
Wohnort: Kaufbach, Sachsen, Germany, Germany
Kontaktdaten:

Re: Begrenzte Listendarstellung

Beitrag von akretschmer » Do 11. Okt 2018, 16:46

einfach beim COPY angeben, daß für diese Spalte keine Daten kommen:

Code: Alles auswählen

test=*# create table bla (id serial primary key, val int);
CREATE TABLE
test=*# copy bla(val) from stdin;
Enter data to be copied followed by a newline.
End with a backslash and a period on a line by itself, or an EOF signal.
>> 10
>> 23
>> 23
>> 12
>> 22
>> \.
COPY 5
test=*# select * from bla;
 id | val 
----+-----
  1 |  10
  2 |  23
  3 |  23
  4 |  12
  5 |  22
(5 rows)

test=*# 
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Antworten