-
Timestamp
Hallo zusammen,
aus einer Anwendung bekommen wir solche Timstampfelder
Hat jemand eine Idee ob diese Feldinhalte mit SQL übernommen werden können ?
"2022-04-08T12:09:49+0200"
Gruß
Michael
-
Dies ist der neue "Timestamp with Timezone".
D.h, der 1. Teil ist die UTC-Zeit "2022-04-08T12:09:49", der 2. Teil ist die Zeitzone "+0200", also derzeit MESZ.
Dafür gibts dann in SQL "TIMESTAMP(n) with timezone" sowie die Umrechnung localtime(), die den Timstamp dann umrechnet.
Das "T" ist dann durch ein Leerzeichen zu ersetzen.
Im Ilerpg kannst du aber die mitgelieferte Zeitzone auch selber auf den Timestamp draufrechnen.
-
Zitat von Fuerchau
Dies ist der neue "Timestamp with Timezone".
D.h, der 1. Teil ist die UTC-Zeit "2022-04-08T12:09:49", der 2. Teil ist die Zeitzone "+0200", also derzeit MESZ.
Dafür gibts dann in SQL "TIMESTAMP(n) with timezone" sowie die Umrechnung localtime(), die den Timstamp dann umrechnet.
Das "T" ist dann durch ein Leerzeichen zu ersetzen.
Im Ilerpg kannst du aber die mitgelieferte Zeitzone auch selber auf den Timestamp draufrechnen.
SQL ist der Hit
:-)
Gruß
Michael
-
Zitat von Fuerchau
Dies ist der neue "Timestamp with Timezone".
D.h, der 1. Teil ist die UTC-Zeit "2022-04-08T12:09:49", der 2. Teil ist die Zeitzone "+0200", also derzeit MESZ.
Dafür gibts dann in SQL "TIMESTAMP(n) with timezone" sowie die Umrechnung localtime(), die den Timstamp dann umrechnet.
Das "T" ist dann durch ein Leerzeichen zu ersetzen.
Ich habe gerade ein ähnliches Problem. Ich muss Daten, die als RFC 3339 Timestamp kommen, in unseren IBM i timestamp konvertieren bzw. unseren Timestamp in das RFC Format bringen.
Gibt es da eine SQL Syntax "TIMESTAMP(n) with timezone" ? Bei mir klappt das nicht. Oder habe ich die Antwort falsch verstanden?
So etwas geht:
values timestamp('2022-09-07 17:16:12.123');
Folgendes geht nicht:
values timestamp('2022-09-07T17:16:12.123Z');
Gibt es dafür eine SQL-Interpretierungsfunktion?
Dieter
-
Jo: timestamp(replace(trim(char(var), 'Z'), 'T', ' '))
-
1. Timestamp(n) with timezone gibt es NICHT in Db2 for i! (nur auf den anderen Db2s)
2. Die Konvertierung geht auch einfacher:
Code:
Values Timestamp(Translate('2022-09-07T17:16:12.123Z', ' ', 'TZ'));
-
Herzlichen Dank an euch beide.
Das Z steht ja für Zulu Time (also die Greenwich Zeit). In der Regel werden wir die Ortszeit aus Deutschland bekommen. Die hätte dann anstatt des Z den Zeitoffset hinten dran: '2022-09-07T17:16:12.123+02:00'
Es gibt da dafür nichts "Fertiges" in SQL? Ich muss also selber aktiv werden und mit timestamp und timezone rechnen?
Es geht mir auch um die Ausgabe (als JSON). Unsere Kollegen hätten gerne einen Timestamp der obigen Form (also mit Zeit-Offset). Den kann ich natürlich über eine Funktion "basteln". Aber ich hatte gehofft, dass IBM da inzwischen etwas bereitgestellt hat. Angeblich ist RFC 3339 ja der weltweite Standard (wegen Internet).
-
Nein, was fertiges gibt es auf der IBM i nicht (zumindest nicht im Standard-Umfang der Db2 for i).
Vielleicht findest Du etwas Open Source.
... ansonsten selberbasteln.
-
Zumal die Zeitzone aktuell nur per Systemwert auslesbar ist.
Der Timestamp auf der IBM i ist immer localtime!
Um also die UTC-Zeit zu bekommen musst du eine external Function schreiben, die den aktuellen Offset aus dem Systemwert ausliest und die UTC dann ausrechnet.
Ggf. kannnst du so eine eigene Cast-Funktion schreiben, die das Ergebnis als CHAR-Feld zurückgibt.
Ich verstele den Hype um den Timestamp with Timezone sowieso nicht.
Wenn ich in der DB grundsätzlich UTC speichere, kann ich ja jederzeit den Timestamp mit "+00:00" ausgeben. Die Anzeige der Localtime ist ja sowieso immer Sache des Clients, da dessen Zeitzone für die Darstellung gilt. Es interessiert mich halt nicht, wie die Zeitzone mal war als die Zeit eingestellt wurde.
Ich habe mal für Infor-XPPS das Problem "mehrere Zeitzonen auf der IBM i" lösen müssen, was aktuell nur mit den C-UnixAPI's und den Locale-Einstellungen je Job funktioniert.
SQL und ILERPG interessieren sich dafür allerdings nicht.
Ach ja: Und das Problem der doppelten/fehlenden Zeiten für Differenzrechnung und Sortierungen bei der Zeitumstellung gibts bei Verwendung von UTC nicht.
-
OK,
vielen Dank. Ihr habt mir, wie immer, sehr weiter geholfen!
-
In einer global vernetzten Welt machen Timestamps mit Offset schon Sinn, zumindest, wenn Menschen involviert sind.
Das macht das Arbeiten mit Timestamps der eigenen Zeitzone nicht schwieriger als vorher; man kann aber trotzdem mit der ganzen Welt missverständnisfrei solche Daten austauschen.
-
Auch das ist nur bedingt richtig.
Klar weiß ich dann in welcher Zeitzone die Zeit enstanden ist, um damit ggf. aber zu arbeiten wandle ich diese in die Localtime meiner Zeitzone um.
Was mache ich dann also mit der gelieferten Zeitzone im Sinne der Verarbeitung?
Und was die Verständigung beim Datenaustausch angeht, so haben wir bei der Betrachtung von Zeitzonen immer schon in UTC Daten ausgetauscht.
In der globalen Welt tausche ich auch schon lange Dateien aus. Deren Datumangaben (create, lastaccess, lastwrite) sind schon immer in UTC und der User sieht bei der Betrachtung dann seine LocalTime.
In Mails werden die Zeiten schon immer in UTC übertragen.
usw. usf.
Similar Threads
-
By itec01 in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 25-02-21, 06:22
-
By tarkusch in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 26-07-17, 16:34
-
By Wwilson in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 24-06-14, 16:26
-
By Franz.Rung in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 04-11-13, 16:54
-
By rebe in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 26-09-01, 08:46
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks