mssql- mit mysql-timestamp vergleichen

kesnw

Erfahrenes Mitglied
Hallo,

ich habe zwei DBs (MSSQL und MYSQL) mit identischen Tabellen. Ich möchte alle neuen Datensätze der MySQL Tabelle und alle Datensätze, die älter sind als die der MySQL Tabelle in die MSSQL Tabelle einfügen bzw. in der MSSQL Tabelle aktualisieren.

Der timestamp in MySQL ist für mich logisch, "Ymdhms". Der timestamp in MSSQL Tabelle sieht aber so aus: 0x000000000003DDE0 (steht in der DB). Wenn ich das Ergebnis mit PHP ausgebe sieht das so aus: Ýà

Wie soll ich die zwei denn jetzt vergleichen? Kann mir jemand helfen?
 
Zuletzt bearbeitet:
Du könntest die Datum-Formate der Datenbank inden Unix-Timestamp konvertieren und vergleichen.
Bei MySQL geht das mit UNIX_TIMESTAMP(datumsspalte).
Bei MSSQL weiss ich es leider nicht, aber das wirst du ja nachlesen können.
 
Mir scheint, als stünde der Zeitstempel in MSSQL in einem hexadezimalen Format – allerdings werde ich aus den dezimalen Version (253408) auch nicht schlauer.
Nun wäre es interessant zu wissen, welche Logik hinter diesem Format steckt.
 
Ich komm da leider nicht weiter. ich hab jetzt mal strtotime() benutzt, aber der Zeitstempel ändert sich nicht, obwohl ich den Eintrag aktualisiere...

Kann mir keiner weiterhelfen?
 
Kanns sein dass der Zeitstempel in MSSQL zeitunabhängig eingetragen wird? Hab jetzt die Zeile drei mal aktualisiert und folgende Werte erhalten:

0x000000000003DDE1
0x000000000003DDE2
0x000000000003DDE3

Was hat das bitte noch mit einem Zeitstempel zu tun
 
Habe jetzt eine andere Idee. In MSSQL benutze ich datetime.

Ich vergleiche beide mit der Funktion mktime(). Aber warum ändert sich der Zeitstempel je nachdem wann ich das Skript ausführe? Dachte es wird ein Zeitstempel für das anegegebene Datem berechnet?
 
PHP:
  $result=odbc_exec($verbindung_intern,"SELECT CONVERT(VARCHAR(19),checker,121) as checker FROM lbs_mysql_vendors WHERE L_ID_clear = 'rva0001'") or die ("Error in intern query Select");
  $checker_mssql=odbc_fetch_object($result);

  echo "Timestamp: ";
  echo time();
  echo "<br>";
  echo "Checker: ";
  echo mktime($checker_mssql->checker);

Der angezeigte timestamp ändert sich...
 
Nein, time() hab ich nur zum Test drin. Es geht um mktime(). Der Timestamp ändert sich ebenfalls, was ja eigentlich nicht sein dürfte...
 
Zurück