php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 19-07-2016, 12:09
Rocktale
 Registrierter Benutzer
Links : Onlinestatus : Rocktale ist offline
Registriert seit: Jul 2016
Beiträge: 4
Rocktale befindet sich auf einem aufstrebenden Ast
Standard falsche Uhrzeitangabe beim umwandeln von unixtimestamp

Hallo ich bin ziemlich neu in der Anwendungsentwicklung und habe den Auftrag bekommen eine Datenbank zu bereinigen.
Soweit habe ich auch alle Fehler beseitigen können allerdings gibt es da von 4281 Datensätze genau 30 die mir Kopfzerbrechen bereiten.
Es geht um ein var-Feld einer Tabelle in einer MySQL-Datenbank, darin ist ein Unixtimestamp gespeichert.
Genau da liegt jetzt mein Problem, denn einer dieser Unixtimestamps lautet:
624137400

Laut MySQL
Code:
SELECT FROM_UNIXTIME(624137400)
ist das Datum/Uhrzeit: 1989-10-11 21:30:00

Laut Unixtime.de-Umrechner: 11.10.1989 - 20:30:00, was auch mit der Zeit übereinstimmt, welche für das Event an anderer Stelle der Datenbank per "Datetime" hinterlegt ist.
Ich habe auch stundenlang Google und die hiesige SuFu bemüht, ohne eine Antwort zu finden.
Ich wäre für ein wenig Hilfestellung wirklich dankbar.
Mit Zitat antworten
  #2 (permalink)  
Alt 19-07-2016, 12:45
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.544
h3ll befindet sich auf einem aufstrebenden Ast
Standard

FROM_UNIXTIME() liefert die Zeit in der akutell eingestellten Zeitzone. Wenn du eine andere möchtest, musst du diese angeben.
Mit Zitat antworten
  #3 (permalink)  
Alt 19-07-2016, 13:25
Rocktale
 Registrierter Benutzer
Links : Onlinestatus : Rocktale ist offline
Registriert seit: Jul 2016
Beiträge: 4
Rocktale befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von h3ll Beitrag anzeigen
FROM_UNIXTIME() liefert die Zeit in der akutell eingestellten Zeitzone. Wenn du eine andere möchtest, musst du diese angeben.
Okay, d.h. in der eingestellten Server-Zeitzone.
Soviel ist mir jetzt klar, danke.
Was mir aber immer noch nicht klar ist, warum spuckt er mir bei über 4000 Datensätzen mit FROM_UNIXTIME() die richtige Zeitangabe aus und nur bei 30! eine um 1 Stunde verschobene?
Wäre das bei allen Datensätzen so, oder nur bei denen, bei denen der Timestamp nach Winter bzw Sommerzeit angelegt wurde, okay. Aber dem ist nicht so.
Mit Zitat antworten
  #4 (permalink)  
Alt 19-07-2016, 14:20
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.544
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Rocktale Beitrag anzeigen
Okay, d.h. in der eingestellten Server-Zeitzone.
Soviel ist mir jetzt klar, danke.
Was mir aber immer noch nicht klar ist, warum spuckt er mir bei über 4000 Datensätzen mit FROM_UNIXTIME() die richtige Zeitangabe aus und nur bei 30! eine um 1 Stunde verschobene?
Kannst du auch Beispieldaten zeigen? Verschoben zu was? Mit was vergleichst du die Werte?

Und in welcher Zeitzone läuft die Datenbankverbindung?

Zu deinem zuerst geposteten Timestamp:

20:30 wäre korrekt, wenn man von einer mitteleuropäischen Zeitzone ausgeht:

PHP-Code:
$dateTime = new DateTime();
$dateTime->setTimezone(new DateTimeZone('Europe/Berlin'));
$dateTime->setTimestamp(624137400);

echo 
$dateTime->format('r');
// Wed, 11 Oct 1989 20:30:00 +0100 
Hier Testcode am MySQL-Server:
Code:
mysql> SET time_zone = 'Europe/Berlin';
Query OK, 0 rows affected (0.01 sec)

mysql> SELECT FROM_UNIXTIME(624137400);
+--------------------------+
| FROM_UNIXTIME(624137400) |
+--------------------------+
| 1989-10-11 20:30:00      |
+--------------------------+
1 row in set (0.00 sec)

Geändert von h3ll (19-07-2016 um 14:45 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 20-07-2016, 10:04
Rocktale
 Registrierter Benutzer
Links : Onlinestatus : Rocktale ist offline
Registriert seit: Jul 2016
Beiträge: 4
Rocktale befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von h3ll Beitrag anzeigen
Kannst du auch Beispieldaten zeigen? Verschoben zu was? Mit was vergleichst du die Werte?
Wie ich schon sagte:
"Was mir aber immer noch nicht klar ist, warum spuckt er mir bei über 4000 Datensätzen mit FROM_UNIXTIME() die richtige Zeitangabe aus und nur bei 30! eine um 1 Stunde verschobene (Zeitangabe)?"

Soll heißen er gibt mir auf meinem lokalen Server beim Timestamp "624137400" fälschlicherweise: 1989-10-11 21:30:00
allerdings nur bei einigen Timestamps.
Genau bei 30 von 4281.
Zitat:
Zitat von h3ll Beitrag anzeigen
Und in welcher Zeitzone läuft die Datenbankverbindung?
Zu deinem zuerst geposteten Timestamp:

20:30 wäre korrekt, wenn man von einer mitteleuropäischen Zeitzone ausgeht:
Die eigentlich Datenbank liegt auf einem Hausinternen Server, dort wird die Umrechnung richtig gemacht, bei allen Datensätzen.
Auf meinem lokalen Xamppserver, auf dem ich eine Kopie der Datenbank habe werden auch alle Timestamps richtig umgerechnet, bis auf diese 30 Timestamps.
Das ist die Sache, die ich nicht verstehe, es liegt anscheinend schon an der Zeitzoneneinstellung allerdings steht bei beiden Servern nur "System" als
Einstellung der Zeitzone, beide geben aber mit
Code:
SELECT CURRENT_TIME;
dieselbe Zeit aus.
Ist jetzt nicht mehr wirklich ein Problem, ich hätte es nur gern begriffen.
Mit Zitat antworten
  #6 (permalink)  
Alt 20-07-2016, 10:49
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.544
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Das ist jetzt nur eine Vermutung, ich hab es nicht nachgeprüft, aber IMHO ist das wieder so eine Windows-Geschichte. PHP und MySQL sind unter Windows nun mal sehr suboptimal. Irgendwas dürfte jedenfalls mit der Systemzeitzone schief laufen. Wenn man die Zeitzone in MySQL direkt setzt, dann liefert es die korrekte Werte (siehe mein MySQL-Beispiel).
Mit Zitat antworten
  #7 (permalink)  
Alt 20-07-2016, 11:09
Rocktale
 Registrierter Benutzer
Links : Onlinestatus : Rocktale ist offline
Registriert seit: Jul 2016
Beiträge: 4
Rocktale befindet sich auf einem aufstrebenden Ast
Standard

Okay, ich dachte es gibt da irgendetwas, dass ich übersehen hab.
Ich danke dir jedenfalls vielmals für deine Mühen.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Falsche Pfade beim Inkludieren - wie kann man das ändern? Dirki-Boy PHP Developer Forum 30 31-10-2007 17:00
Problem beim Umwandeln des UBB-Codes Jemand PHP Developer Forum 6 18-07-2007 21:59
[CSS] Falsche Position von einem Include in einer div giant7 HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 12 01-04-2006 22:23
Falsche Ausgabe von Abfrage Earl of Green PHP Developer Forum 4 28-01-2005 18:55
unixtimestamp-unixtimestamp ... gib mir die minuten CannabisCow PHP Developer Forum 2 10-06-2003 08:24

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

zechat ansehen zechat

Willst du Chat-Admin in deinem eigenen kostenlosen Chat mit vielen Funktionen sein, und soll der Chat dazu noch schnell und stabil auf alles Webservern sein? Wenn ja, ist deine Suche jetzt vorbei!

07.06.2018 Manuel1986 | Kategorie: AJAX/ Chat
bootstrapzero

kostenlose Bootstrap-Themes

05.06.2018 Berni | Kategorie: HTML5/ CSS-Responsive
Entwicklung einer Chat-Webanwendung mit Node.js

Einfacher Chat mit Node.js

26.05.2018 Berni | Kategorie: Node.js/ nodejs-Tutorials
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 06:31 Uhr.