Zum Inhalt springen

phpMyAdmin timestamp format


Empfohlene Beiträge

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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...

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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...

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...