Frage zu Zeiten

Fragen und Probleme zu PL/pgSQL.
Antworten
tutter
Neuer Benutzer
Beiträge: 23
Registriert: Mo 28. Nov 2016, 22:31

Frage zu Zeiten

Beitrag von tutter » Di 25. Jul 2017, 15:58

Hallo an alle,

ich habe eine Frage zu Zeitstempeln.
Aktuell habe ich einen Zeitstempel aus dem MS SQL Server vorliegen. Die wie folgt aussehen: 2017-06-17 13:23:00.000. Da diese vom Typ Datetime sind liegt dies im Format ohne Zeitzone vor.

Auf dem PostgreSQL System liegt mir das wie folgt vor: 2017-06-17 13:23:00.000+02. Wenn ich richtig informiert bin müsste ja die +02 meine Zeitzone sein. Aber wie könnte ich denn den gleichen Ausdruck erhalten wie die vom MS SQL Server? Also sprich wie bekomme ich den Zeitstempel ohne Zeitzone? Habe bisher nur to_timestamp gefunden. Danach würde die Abfrage wie folgt aussehen:
to_timestamp('2014/04/25 10:13:18.041.394820', 'YYYY/MM/DD HH:MI:SS.MS'). Jedoch sehe ich auch hier meine +02 was ja für meine Zeitzone stehen müsste.

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

Re: Frage zu Zeiten

Beitrag von akretschmer » Di 25. Jul 2017, 16:29

PG kennt timestamp und timestamptz. Wenn Du es ohne tz haben willst:

Code: Alles auswählen

test=# select now();
              now              
-------------------------------
 2017-07-25 16:28:57.599855+02
(1 Zeile)

test=*# select now()::timestamp;
            now             
----------------------------
 2017-07-25 16:28:57.599855
(1 Zeile)

test=*#
Aslo einfach casten.
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

tutter
Neuer Benutzer
Beiträge: 23
Registriert: Mo 28. Nov 2016, 22:31

Re: Frage zu Zeiten

Beitrag von tutter » Di 25. Jul 2017, 16:48

Aaah ok das ist ja einfach in Postgresql! Ich kenne nur die komplexe Zerlegung des Wertes mit CAST(). Gibt es auch eine einfache Möglichkeit die Millisekunden auf 000 zu setzen?`
Also Ziel sollte sein: 2017-07-25 :16:28:57.000

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

Re: Frage zu Zeiten

Beitrag von akretschmer » Di 25. Jul 2017, 16:52

Code: Alles auswählen

test=*# select date_trunc('second',now())::timestamp;
     date_trunc      
---------------------
 2017-07-25 16:28:57
(1 Zeile)
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

tutter
Neuer Benutzer
Beiträge: 23
Registriert: Mo 28. Nov 2016, 22:31

Re: Frage zu Zeiten

Beitrag von tutter » Di 25. Jul 2017, 17:06

ja fast. die 000 fehlt aber beim Ergebnis. oder zeigt er die einfach nicht an? Also so : 2017-07-25 :16:28:57.000

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

Re: Frage zu Zeiten

Beitrag von akretschmer » Di 25. Jul 2017, 17:09

Code: Alles auswählen

test=# select date_trunc('second',now())::timestamp || '.000';
        ?column?         
-------------------------
 2017-07-25 17:08:43.000
(1 Zeile)
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Antworten