timestamp

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

timestamp

Beitrag von simar » Fr 9. Nov 2018, 18:44

finde ich hier auch zu diesem, für mich, Problem eine Lösung?


Der "select timestamp with time Zone 'epoch'+ 1527094252*INTERVAL'1 second'
from table_1" bringt ein Datum mit Uhrzeit
jetzt möchte ich anstatt "1527094252" einen Alias bzw. den Feldnamen der Spalte timestamp einsetzen damit ich alle Zeilen meiner Tabelle table_1 anzeigen kann.

Vorab schon mal vielen Dank

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

Re: timestamp

Beitrag von akretschmer » Fr 9. Nov 2018, 20:13

to_timestamp() könnte Dein Freund werden.

Code: Alles auswählen

test=# select timestamp with time Zone 'epoch'+ 1527094252*INTERVAL'1 second';
        ?column?        
------------------------
 2018-05-23 18:50:52+02
(1 row)

test=*# create table simar(zeit bigint);
CREATE TABLE
test=*# insert into simar values (1527094252);
INSERT 0 1
test=*# select to_timestamp(zeit) from simar ;
      to_timestamp      
------------------------
 2018-05-23 18:50:52+02
(1 row)

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

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

Re: timestamp

Beitrag von simar » Sa 10. Nov 2018, 01:17

Danke Dir,
mußte noch die "Zeit" warum auch immer in "Zeit/1000" ändern dann hat es gepasst.
Super

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

Re: timestamp

Beitrag von simar » Di 27. Nov 2018, 20:46

Guten Abend, ich habe mal wieder ein Problem vielleicht gibt es auch dafür eine Lösung.

Meine Tabelle

id, timestamp, number, sequence
38468, 1542461006075 ,1,1
38475, 1542461028906 ,2,1
38483, 1542461054746 ,3,1
38492, 1542461079093 ,4,1
38501, 1542461104593 ,5,1
38507, 1542461132306 ,6,1
38527, 1542461199444 ,7,1
38535, 1542461224440 ,8,1
38546, 1542461262026 ,9,1
38552, 1542461287806 ,10,1
38969, 1542465082866 ,1,2
38974, 1542465105505 ,2,2
38982, 1542465136039 ,3,2
38987, 1542465164113 ,4,2
38995, 1542465188068 ,5,2
39002, 1542465213866 ,6,2
39007, 1542465236695 ,7,2
39013, 1542465263268 ,8,2
39021, 1542465289305 ,9,2
39026, 1542465314526 ,10,2
.
.
.

Das Ziel der Abfrage, die Ausgabe der Differenzen zwischen den timestamp's number 10 und timestamp's number 1

bin für jede Hilfe dankbar
Gruß Simar

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

Re: timestamp

Beitrag von akretschmer » Di 27. Nov 2018, 21:14

gähn.

Code: Alles auswählen

test=*# select * from simar ;
  id   |   timestamp   | number | sequence 
-------+---------------+--------+----------
 38468 | 1542461006075 |      1 |        1
 38475 | 1542461028906 |      2 |        1
 38483 | 1542461054746 |      3 |        1
 38492 | 1542461079093 |      4 |        1
 38501 | 1542461104593 |      5 |        1
 38507 | 1542461132306 |      6 |        1
 38527 | 1542461199444 |      7 |        1
 38535 | 1542461224440 |      8 |        1
 38546 | 1542461262026 |      9 |        1
 38552 | 1542461287806 |     10 |        1
 38969 | 1542465082866 |      1 |        2
 38974 | 1542465105505 |      2 |        2
 38982 | 1542465136039 |      3 |        2
 38987 | 1542465164113 |      4 |        2
 38995 | 1542465188068 |      5 |        2
 39002 | 1542465213866 |      6 |        2
 39007 | 1542465236695 |      7 |        2
 39013 | 1542465263268 |      8 |        2
 39021 | 1542465289305 |      9 |        2
 39026 | 1542465314526 |     10 |        2
(20 rows)

test=*# with tmp as (select * from simar where number in (10,1)) select *, timestamp - lag(timestamp) over (partition by sequence order by id) as differenz from tmp;
  id   |   timestamp   | number | sequence | differenz 
-------+---------------+--------+----------+-----------
 38468 | 1542461006075 |      1 |        1 |          
 38552 | 1542461287806 |     10 |        1 |    281731
 38969 | 1542465082866 |      1 |        2 |          
 39026 | 1542465314526 |     10 |        2 |    231660
(4 rows)

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

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

Re: timestamp

Beitrag von simar » Di 27. Nov 2018, 21:27

die einen gähnen die anderen schwitzen und verzweifeln ich gehöre leider zu der 2. Gruppe.

Besten Dank für die superschnelle Hilfe, einfach genial!!

Gruß Simar

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

Re: timestamp

Beitrag von simar » Di 27. Nov 2018, 22:46

id, timestamp, number, sequence
38468, 1542461006075 ,1,1
38475, 1542461028906 ,2,1
38483, 1542461054746 ,3,1
38492, 1542461079093 ,4,1
38501, 1542461104593 ,5,1
38507, 1542461132306 ,6,1
38527, 1542461199444 ,7,1
38535, 1542461224440 ,8,1
38546, 1542461262026 ,9,1
38552, 1542461287806 ,10,1
38969, 1542465082866 ,11,2
38974, 1542465105505 ,12,2
38982, 1542465136039 ,13,2
38987, 1542465164113 ,14,2
38995, 1542465188068 ,15,2
39002, 1542465213866 ,16,2
39007, 1542465236695 ,17,2
39013, 1542465263268 ,18,2
39021, 1542465289305 ,19,2
39026, 1542465314526 ,20,2
39036, 1542465373233 ,21,3


funktioniert das auch in der konstellationen mit fortlaufenden Nummern,
also gleichzeitig die Differenz zwischen 10 und 1; Differenz 20 und 11; Differenz 30 und 21
wäre natürlich noch genialer

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

Re: timestamp

Beitrag von akretschmer » Mi 28. Nov 2018, 08:56

meinst Du so?

Code: Alles auswählen

test=*# select * from simar ;
  id   |   timestamp   | number | sequence 
-------+---------------+--------+----------
 38468 | 1542461006075 |      1 |        1
 38475 | 1542461028906 |      2 |        1
 38483 | 1542461054746 |      3 |        1
 38492 | 1542461079093 |      4 |        1
 38501 | 1542461104593 |      5 |        1
 38507 | 1542461132306 |      6 |        1
 38527 | 1542461199444 |      7 |        1
 38535 | 1542461224440 |      8 |        1
 38546 | 1542461262026 |      9 |        1
 38552 | 1542461287806 |     10 |        1
 38969 | 1542465082866 |      1 |        2
 38974 | 1542465105505 |      2 |        2
 38982 | 1542465136039 |      3 |        2
 38987 | 1542465164113 |      4 |        2
 38995 | 1542465188068 |      5 |        2
 39002 | 1542465213866 |      6 |        2
 39007 | 1542465236695 |      7 |        2
 39013 | 1542465263268 |      8 |        2
 39021 | 1542465289305 |      9 |        2
 39026 | 1542465314526 |     10 |        2
(20 rows)

test=*# select *, s2.timestamp - s1.timestamp as difference from simar s1 left join simar s2 on ((s2.number,s2.sequence)=(s1.number +1, s1.sequence)); 
  id   |   timestamp   | number | sequence |  id   |   timestamp   | number | sequence | difference 
-------+---------------+--------+----------+-------+---------------+--------+----------+------------
 38468 | 1542461006075 |      1 |        1 | 38475 | 1542461028906 |      2 |        1 |      22831
 38969 | 1542465082866 |      1 |        2 | 38974 | 1542465105505 |      2 |        2 |      22639
 38475 | 1542461028906 |      2 |        1 | 38483 | 1542461054746 |      3 |        1 |      25840
 38974 | 1542465105505 |      2 |        2 | 38982 | 1542465136039 |      3 |        2 |      30534
 38483 | 1542461054746 |      3 |        1 | 38492 | 1542461079093 |      4 |        1 |      24347
 38982 | 1542465136039 |      3 |        2 | 38987 | 1542465164113 |      4 |        2 |      28074
 38492 | 1542461079093 |      4 |        1 | 38501 | 1542461104593 |      5 |        1 |      25500
 38987 | 1542465164113 |      4 |        2 | 38995 | 1542465188068 |      5 |        2 |      23955
 38501 | 1542461104593 |      5 |        1 | 38507 | 1542461132306 |      6 |        1 |      27713
 38995 | 1542465188068 |      5 |        2 | 39002 | 1542465213866 |      6 |        2 |      25798
 38507 | 1542461132306 |      6 |        1 | 38527 | 1542461199444 |      7 |        1 |      67138
 39002 | 1542465213866 |      6 |        2 | 39007 | 1542465236695 |      7 |        2 |      22829
 38527 | 1542461199444 |      7 |        1 | 38535 | 1542461224440 |      8 |        1 |      24996
 39007 | 1542465236695 |      7 |        2 | 39013 | 1542465263268 |      8 |        2 |      26573
 38535 | 1542461224440 |      8 |        1 | 38546 | 1542461262026 |      9 |        1 |      37586
 39013 | 1542465263268 |      8 |        2 | 39021 | 1542465289305 |      9 |        2 |      26037
 38546 | 1542461262026 |      9 |        1 | 38552 | 1542461287806 |     10 |        1 |      25780
 39021 | 1542465289305 |      9 |        2 | 39026 | 1542465314526 |     10 |        2 |      25221
 38552 | 1542461287806 |     10 |        1 |       |               |        |          |           
 39026 | 1542465314526 |     10 |        2 |       |               |        |          |           
(20 rows)

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

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

Re: timestamp

Beitrag von simar » Mi 28. Nov 2018, 15:15

Nein nicht so,
die Spalte number ist fortlaufend bis zB bis 100, die Spalte sequence erhöht sich im bei jeder Zehnerzahl in spalte number um 1

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

Re: timestamp

Beitrag von akretschmer » Mi 28. Nov 2018, 15:52

simar hat geschrieben:
Mi 28. Nov 2018, 15:15
die Spalte number ist fortlaufend bis zB bis 100, die Spalte sequence erhöht sich im bei jeder Zehnerzahl in spalte number um 1
wozu soll das eigentlich gut sein? Ist redundant...
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Antworten