[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Jul 2008
    Beiträge
    10

    Insert auf SQL-Server datetime - Zeit stimmt nicht

    Hallo!

    Ich ermittele per RPG-SQL Daten aus einer AS400 Datei und schreibe sie in eine Tabelle auf einem MS SQL-Server.

    Funktioniert ansich problemlos, jedoch die Zeit in meinen Zeitfeld (am SQL-Server)vom Typ datetime stimmt nicht.

    So schriebe ich die Daten auf den SQL-Server:

    Code:
    stmt = JDBC_PrepStmt(conn : 'Insert Into '+%trim(inserttab)+ ' '     +
                    '([Feld1], [Feld2], [Datum], [Zeit])'
                      + ' values (?,?,?,?)' );
    
              if (stmt = *NULL);
                 ErrMsg = 'Prepare Statement failed!';
                 return *OFF;
              endif;
             //Werte zuweisen
              JDBC_setString   (stmt: 1: sq#Feld1 );
              JDBC_setString   (stmt: 2: sq#Feld2 );
              JDBC_setDate     (stmt: 3: sq#Datum );
              JDBC_setTime     (stmt: 4: sq#Zeit );
    Wenn ich mir hier im Debugger den Inhalt von Zeit anschaue sehe ich z.b. 07:00:00

    Am SQL-Server steht dann aber in dem Datensatz 06:00:00. (mit Datum da datetime).


    Hat jemand eine Idee woran das liegen könnte?
    Ich greife die Zeit niergends an, die Systemzeit am Server ist auch ok?


    Bin für jeden Tip dankbar!

    lg

  2. #2
    Registriert seit
    Nov 2001
    Beiträge
    28
    Hallo Hatl,

    schau Dir mal Deine System Werte QTIMZONE und QUTCOFFSET
    an. Ich kenne so ein Phänomen z.B. in Mail Clients wenn Mail
    von der iSeries gesendet werden. Aktuell sollten die so aussehen.

    Systemwert . . . . . . : QUTCOFFSET
    Beschreibung . . . . . : Abweichung von der Weltzeit
    Abweichung . . . . . . : +02:00 -24:00 bis +24:00


    Systemwert . . . . . . : QTIMZON
    Beschreibung . . . . . : Zeitzone
    Zeitzone . . . . . . . : QP0100CET2 Name
    Zugeordnete Einstellungen:
    Abweichung . . . : +02:00
    Voller Name . . : Central European Daylight Saving Time
    Kurzname . . . . : CEST



    Gruß R

  3. #3
    Registriert seit
    Jul 2008
    Beiträge
    10
    Vielen Dank!

    Die Systemwerte sind ok, schauen genau so aus.
    Hmm ich werde weitersuchen.

    lg

  4. #4
    Registriert seit
    Jul 2008
    Beiträge
    10
    Ich habe jetzt endlich eine Lösung gefunden.
    Es funktioniert, wenn man in eine Variable (19 alpha) die Zeit in der Form eines datetime - Feldes schriebt.
    z.b. '01.01.1900 12:10:00'
    Das kann dann als String (nicht time oder date) in ein datetime - Feld am SQL-Server eingetragen werden und die Zeit stimmmt.

    lg

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Der SQL-Server scheint da die UTC-Zeit zu verwenden. Kann auch eine Treiber-Einstellung sein, dass bei Datum/Zeit die Timezone beim Schreiben/Lesen verrechnet wird.
    Bei einem Timestamp scheint das wiederum nicht zu gelten.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

Similar Threads

  1. SQL Zugriff von iSeries auf Microsoft SQL-Server
    By Wandrey in forum NEWSboard Programmierung
    Antworten: 21
    Letzter Beitrag: 16-05-08, 13:08
  2. AS400 auf SQL Server
    By DEVJO in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 12-10-06, 18:28
  3. SQL - Cursor vernichten ?!?
    By FNeurieser in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 11-10-06, 14:53
  4. SQL Insert ein Feld Hochzählen
    By linguin in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 07-01-06, 15:46
  5. MS Sql Server + iSeries -> Verbindungsserver
    By reraru in forum NEWSboard Programmierung
    Antworten: 13
    Letzter Beitrag: 20-04-05, 13:07

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •