forTeesSake Geschrieben 15. April 2005 Teilen Geschrieben 15. April 2005 hi, hab hier seit ich nen neuen rechner auf arbeit habe ein grosses problem mit dem anlegen von tabellen über phpMyAdmin. es geht um timestamp felder. auf meinem alten (und eigentlich auch allen rechnern die ich zuhause oder bei kunden hatte) war das default format eines timestamps 00000000000000 also z.b. 20050304120000 aber jetzt, selbst wenn ich das default format auf 00000000000000 setze (!)werden die felder immer im format 0000-00-00 00:00:00 gehandhabt. hab hier ms xp home edition service pack 1 sollte das was damit zu tun haben. weiss jemand was? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
arrayhunter Geschrieben 15. April 2005 Teilen Geschrieben 15. April 2005 http://www.php-faq.de/q/q-phpmyadmin-timestamp.html Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
forTeesSake Geschrieben 15. April 2005 Autor Teilen Geschrieben 15. April 2005 leider war das nicht die frage. es geht darum das DEFAULTFORMAT zu verändern. ich möchte nicht das format 0000-00-00 00:00:00 sondern das format 00000000000000 als standard haben. und obwohl ich das beim anlegen der tabelle angebe wird es ignoriert... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
forTeesSake Geschrieben 15. April 2005 Autor Teilen Geschrieben 15. April 2005 komischerweise kann ich aber in das feld mit dem datenty TIMESTAMP dann auch (wie gewohnt) 20050414155200 eintragen. das wir auch völlig richtig akzeptiert und interpretiert. es entsteht daraus aber dann leider immer wieder 2005-04-14 15:52:00 gab es da ein mysql update das diese änderung vorgenommen hat? gibt es eine lösung oder einen workaround? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etreu Geschrieben 15. April 2005 Teilen Geschrieben 15. April 2005 Benutzt du schon die 4.1? Dann könnte hier eine Erklärung für dich sein. (Insbesondere der Kommentar!!!) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
forTeesSake Geschrieben 15. April 2005 Autor Teilen Geschrieben 15. April 2005 wow. vielen dank mal wieder enrico. das kann ja dramatische folgen haben wenn z.b. mein provider mal die 4.1er mysql version draufspielt... nunja, das wird hoffentlich erstmal nicht passieren. vielen dank aber erstmal! das lässt mir keine ruhe. ich möchte gerne noch folgendes wissen: kann ich denn über php einen stringwert (der ein datum beinhaltet) irgendwie sicher zu einem datum machen? klar könnte ich mit stringoperationen aus dem datum tag monat und jahr rausholen, das ist aber dann ja in o.g. fall genau das problem. denn wenn ich auf einem timestamp vor version 4.1 den tag holen möchte, steht der ja an anderer position als ab version 4.1 natürlich kann ich gleich bei der sql-abfrage DATE(datum) MONTH(datum) etc. rausholen, das bring mir aber im moment nichts, da alle meine anwendungen über eine funktion laufen die per stringoperation tag monat und jahr aus dem format 20050517120000 rausholt. und dann müsste ich ja alle sql-abfragen ändern. wenn es also die möglichkeit gäbe, nur mal als dummybeispiel: $day = returnDayFromDate($line['datum']); wobei returnDayFromDate() irgendeine systemfunktion ist, die nicht formatabhängig ist, dann wäre mir sehr geholfen. hoffentlich versteht jemand was ich meine, das ist sehr schwer zu erklären... vielen dank schonmal für die mühe forTeesSake Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 17. April 2005 Teilen Geschrieben 17. April 2005 warum nicht einfach date_format verwenden? http://dev.mysql.com/doc/mysql/de/date-and-time-functions.html das wird wohl mit 4.1 auch upgedatet und somit dann auch weiterhin funktionieren... Gruß, Markus Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
forTeesSake Geschrieben 21. April 2005 Autor Teilen Geschrieben 21. April 2005 warum nicht einfach date_format verwenden? http://dev.mysql.com/doc/mysql/de/date-and-time-functions.html das ist schon richtig. und ich werde das in zukunft auch so machen, nur besteht für mein aktuelles (fertiges) und alle vorherigen probleme eben das problem, dass ich ca 100 funktionen mit sql-abfragen habe, die ich dann alle anpassen müsste. und wenn ich das mache, wirkt sich das auf andere funktionen aus, die von diesen funktionen werte zurückbekommen. das ist unmöglich zu machen... ich bete, dass unser provider nie auf die neue mysql version umsteigt... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Pentium Geschrieben 21. April 2005 Teilen Geschrieben 21. April 2005 hmm, also ka ob ichs jetzt richtig verstanden habe das lässt mir keine ruhe. ich möchte gerne noch folgendes wissen: kann ich denn über php einen stringwert (der ein datum beinhaltet) irgendwie sicher zu einem datum machen? wie wäre es mit : date("d.m.Y",strtotime(string)) und das mit den Timestamp und mysql leg doch einfach als Datentyp in der DB nen varchar(30) oder so fest da kannste ohne probs ein timestamp rein schreiben und hast auch später keine probs varchar bleibt varchar *g* hoffe hab das jetzt richtig verstanden Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 21. April 2005 Teilen Geschrieben 21. April 2005 und das mit den Timestamp und mysql leg doch einfach als Datentyp in der DB nen varchar(30) oder so fest da kannste ohne probs ein timestamp rein schreiben und hast auch später keine probs varchar bleibt varchar *g* Naja, dass sind eher die Dinge die man lassen sollte,... Man nimmt sich sehr viele Möglichkeiten damit,... Gruß, Markus Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
forTeesSake Geschrieben 22. April 2005 Autor Teilen Geschrieben 22. April 2005 ich versuch die problematik nochmals etwas genauer zu erklären, da das ganze früher oder später wohl so aussehen wird dass unser provider auf die neueste mysql version umstellen wird... ich habe alle meine datums in der db als timstamp, also im format 00000000000000 gespeichert. ich habe in alten projekten eine funktion zum formatieren eines timestamps aus der db verwendet, die mir ein datum im format 04.12.1976 ausgibt function makeDateFromTimeStamp($string) { if($string == "00000000000000"){ $retVal = ""; }else{ $retVal = $retVal.substr($string, 6, 2)."."; $retVal = $retVal.substr($string, 4, 2)."."; $retVal = $retVal.substr($string, 0, 4); } return $retVal; } zum reinschreiben in die db sieht die funktion folgendermassen aus und erwartet ein datum im format DD.MM.YYYY function makeTimestampForDBByDateString($string){ $retVal = ""; $retVal = $retVal.substr($string, 6, 4); $retVal = $retVal.substr($string, 3, 2); $retVal = $retVal.substr($string, 0, 2); $retVal = $retVal."000000"; return $retVal; } und diese funktionen verwende ich nicht nur zum einfachen ausgeben eines datums, sie wird auch bei vielen datumsberechnungen verwendet. nun steck ich in einem ziemlichen dilemma, da das neue timstamp format in mysql offensichtlich 0000-00-00 ist und damit meine stringoperationen zum filtern und formatieren des datums nicht mehr stimmen, da tag und monat ja nun an anderen stellen stehen. (im übrigen könnte ich mich mittlerweilen richtig drüber aufregen, dass das format geändert wurde. wie kann man das einfach so machen? in der nächsten version ist die länge eines varchars nur noch auf 10 zeichen begrenzt, damit noch mehr anwendungen zerschossen werden??? *sarkasmus*) tja, und wie kills vorgeschlagen hat, könnte ich das datum (und so werd ichs wohl in zukunft auch machen, schon bei der db-abfrage rausholen, also z.b. DAY(datum) MONTH(datum) etc. das ist aber für meine vergangenen anwendungen unmöglich, da ich leider ca 100 funktionen umschreiben müsste. und da hängt ja noch viiiiiel mehr dran als nur die sql-abfragen abändern. ich weiss nicht was diese formatumstellung bewirken sollte, finde es aber keine gute idee. (naja, ich bin natürlich auch irgendwo schuld, aber diese funktionen stammen aus der frühen phase meines schaffens und ich bin immer super damit gefahren. kann ja keiner ahnen dass aus äpfel auf einmal bananen gemacht werden ) gruss erstmal. forTeesSake Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 22. April 2005 Teilen Geschrieben 22. April 2005 Naja, wenn du das ganze ja mit diesen 2 Funktionen gemacht hast, solltes du ja nur 2 Änderungen machen müssen oder? Du kannst ja einen select mit "SELECT VERSION()" machen und dementsprechend was der MySQL Server für ne Version sagt 2 verschiedene StringOperationen durchführen. Du darfst dich glücklich schätzen, dass du das alles in Funktionen ausgelagert hast, sonst dürftest du an 100ten Stellen anpassen... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.