-
Datum überlebt ODBC Transfer auf Excel nicht
Hallo Forum!
Ich möchte mir von der AS400 via ODBC u. Ms Query Daten ins Excel holen.
Das Ms Query bei den Aliasnamen u.a. Probleme macht, habe ich ein VIEW erzeugt und hole dieses problemlos ins Excel.
Allerdings gibt's bei der Datumsumsetzung Probleme.
Datum ist in einem nummerischen Feld zB als 20051231 gespeichert.
Nachdem Excel 20051231 nicht als Datum erkennt habe ich in die SQL des VIEWs folgendes eingebaut:
DATE(
LEFT(DIGITS(o500_BELEGDAT1), 4)
CONCAT SUBSTRING(DIGITS(o500_BELEGDAT1), 5, 2)
CONCAT SUBSTRING(DIGITS(o500_BELEGDAT1), 7, 2)
) AS datum
Auf der AS400 schaut's gut aus 05/12/31, aber bei der ODBC-Übertragung ins MS Query krieg ich die Fehlermeldung: "Ungültiger Wert für Datum, Zeit oder Zeitmarke"
Ein Versuch die ganze Geschichte als String rüberzubringen ist ebenfalls erfolglos:
CHAR(
LEFT(DIGITS(o500_BELEGDAT1), 4)
CONCAT '-' CONCAT
SUBSTRING(DIGITS(o500_BELEGDAT1), 5, 2)
CONCAT '-' CONCAT
SUBSTRING(DIGITS(o500_BELEGDAT1), 7, 2)
) AS txtdatum
Komisch ist, dass die Anzeige korrekt 2005-12-31 wiedergibt, das (CHARACTER)Feld aber 22 Zeichen lang ist...
In Excel (bzw. MSQuery) schaut's dann so aus: F2F0F0F560F1F260F2F140
Irgendwo ist da der Wurm drin...
-
Damit habe ich eigentlich nie Probleme gehabt, allerdings solltest du das Format sicherhaltshalber immer in ISO angeben:
DATE(
LEFT(DIGITS(o500_BELEGDAT1), 4) concat '-'
CONCAT SUBSTRING(DIGITS(o500_BELEGDAT1), 5, 2) concat '-'
CONCAT SUBSTRING(DIGITS(o500_BELEGDAT1), 7, 2)
) AS datum
Prüfe noch die ODBC-Konfig auf Datumsumsetzung *ISO, dann müsste es auch mit V4R5 klappen.
-
@ Fuerchau: Vielen Dank für die schnelle Antwort.
Leider funktioniert die Sache nicht:
ISO-Einstellung im ODBC-Treiber (DSN)
habe ich gecheckt, steht auf ISO mit Trennzeichen '-'.
DATE(
LEFT(DIGITS(o500_BELEGDAT1), 4) concat '-'
CONCAT SUBSTRING(DIGITS(o500_BELEGDAT1), 5, 2) concat '-'
CONCAT SUBSTRING(DIGITS(o500_BELEGDAT1), 7, 2)
) AS datum
Trotz der '-' sehe ich auf derAS400 das Datum im Format 05/12/31...
Da scheint irgendeine Einstellung mein
Wunschformat zu "overrulen" ?!?
Daher auch der Versuch das ganze als String zu übertragen.
Vermutlich könnte ich das Datum auch in MS-Query umformatieren, aber nachdem mir das MS-Query schon einige Streiche gespielt hat, möchte ich alle "Wünsche" als VIEW auf der AS400 hinterlegen u. das MS-Query dann nur noch übertragen lassen...
Was also tun ?
LG aus dem heute heißen Süden Österreichs!
-
Zitat von jjagi
Trotz der '-' sehe ich auf derAS400 das Datum im Format 05/12/31...
Da scheint irgendeine Einstellung mein
Wunschformat zu "overrulen" ?!?
Das Datum ist auf in der DB2 UDB for iSeries immer als 4Byte-Binär-Wert hinterlegt und stellt die rechnerische Anzahl an Tagen seit dem 01.01.0001. (Excel seinerseits rechnet in Sekunden und setzt auf dem 1.1.1900 auf)
Um den Binär-Wert sichtbar zu machen, kannst Du die skalare Funktion HEX verwenden:
PHP-Code:
Select Hex(MyDate), MyDate from MyTable
Datums-Formate sind dazu da, um den Binär-Wert lesbar zu machen. Auf der iSeries erkennt SQL selber die folgenden alphanumerische Darstellungen als gültiges Datum:
JJJJ-MM-TT (= *ISO), TT.MM.JJJJ (=*EUR) und MM/TT/JJJJ (= *USA)
Wenn Du also in einer Where-Anweisung MyDate = '01.07.2006' angibst, wird diese Darstellung in den entsprechenden Binär-Wert konvertiert.
In welchem Datums-Format Du das Datum angezeigt bekommst, hängt davon ab, was Du eingestellt hast. Der Default-Wert für das Datum steht i.d.R auf *JOB.
Wenn Du mit iteraktivem SQL arbeitest, kannst Du das Datums-Format wie folgt ändern:
F13 --> Auswahl 1. --> DATFMT
Wenn Du über iSeries Navigator arbeitest, kannst Du das Datums-Format unter JDBC-Setup einstellen.
Für SQL-Programmierung kann das Datums-Format über ein entsprechenden SET OPTION-Statement eingestellt werden.
Birgitta
-
Prüfe mal deine Windows-Einstellungen, da das Anzeigeformat der Windows-Anwendungen von dort kommt.
Systemsteuerung->Regions- und Sprachoptionen
PS:
Wenn du das Datum in STRSQL ansehen willst, musst du ggf. über F13 das Datumsformat auf *ISO umstellen, default ist hier *JOB.
-
vielen Dank für die informativen Antworten - wie ihr vermutlich gemerkt habt, bin ich noch eher in der Anfängerkategorie und lerne hier jeden Tag mehr!
Ich habe jetzt
in STRSQL das Datumsformat auf *ISO und sehe jetzt in STRSQL date() als ISO.
In Win habe ich das Kurzdatumsformat ebenfalls auf ISO sprich JJJJ-MM-TT
eingestellt (war TT.MM.JJJJ) und sicherheitshalber Neustart.
MS-Query fällt trotzdem auf die Nase (Fehlermeldung wiederum: Ungültiger Wert für Datum, Zeit o. Zeitmarke)...
-
hi Forum!
Ich habe einen Workaround gefunden (das Ganze als CHAR-String). Wenn er auch nicht wirklich das Problem löst, jetzt kommt wenigstens ein ISO Format bei MS-Query heraus:
CHAR(
DATE(
LEFT(DIGITS(o500_BELEGDAT1), 4) concat '-'
CONCAT SUBSTRING(DIGITS(o500_BELEGDAT1), 5, 2) concat '-'
CONCAT SUBSTRING(DIGITS(o500_BELEGDAT1), 7, 2)
)) AS datum
Allerdings frage ich mich (und Euch), warum das Datum partout nicht regulär in mein Excel bzw. MS-Query will...
LG vom "Nordbalkan" J.Jagersberger
Similar Threads
-
By Kilianski in forum NEWSboard Server Software
Antworten: 0
Letzter Beitrag: 22-11-06, 15:23
-
By Key in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 12-06-06, 12:29
-
By Rico in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 21-03-05, 09:43
-
By HerbertH in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 27-05-04, 13:10
-
By hs in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 22-08-02, 07:27
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