[GastForen Programmierung/Entwicklung PHP und MySQL Datumformat in mySQL umstellen

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Datumformat in mySQL umstellen

Phips_CH
Beiträge gesamt: 74

24. Mai 2011, 17:09
Beitrag # 1 von 23
Bewertung:
(8616 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Kann ich in mySQL das Datumformat so umstellen das ich dd.mm.yyyy als Standart habe?

Standartmässig ist ja yyyy.mm.dd eingestellt. kann ich das ändern?
so das ich es nicht erst in PHP hin und zurück ändern muss.

Danke

Gruss
Phips_CH
X

Datumformat in mySQL umstellen

oesi50
  
Beiträge gesamt: 2315

24. Mai 2011, 17:45
Beitrag # 2 von 23
Beitrag ID: #472189
Bewertung:
(8610 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
 
Code
SELECT DATE_FORMAT(datum_spalte,'%d.%m.%Y') FROM tabelle; 



als Antwort auf: [#472186]

Datumformat in mySQL umstellen

Phips_CH
Beiträge gesamt: 74

24. Mai 2011, 22:18
Beitrag # 3 von 23
Beitrag ID: #472212
Bewertung:
(8581 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
das zeigt mir aber alle Daten die in der Tabelle stehen und wandelt das Format um.

Kann ich phpMyAdmin auch son einstellen das mir das Datum schon im Format dd.mm.yyyy drin steht?
das wenn ich im php-Formular 24.05.2011 reinschreibe, auch dieses Datum drin steht

Gruss Phips_CH


als Antwort auf: [#472189]

Datumformat in mySQL umstellen

crisies
  
Beiträge gesamt: 136

25. Mai 2011, 23:31
Beitrag # 4 von 23
Beitrag ID: #472314
Bewertung:
(8520 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hi phips,

mysql date felder speichern die daten im folgenden format:
Code
YYYY-MM-DD 


du kannst diese daten beim lesen aus der db formatieren:
Code
SELECT DATE_FORMAT(datum_spalte,'%d.%m.%Y') FROM tabelle; 


und danach auch wieder beim schreiben in die db:
Code
INSERT INTO tabelle(datum_spalte) VALUES (str_to_date('01.02.2007', '%d.%m.%Y')); 


Wobei hier das Datum dann aus dem Formular kommt und das Format dieses Wertes über diesen '%d.%m.%Y' String bestimmt wird. Wenn aus dem Formular dann aber ein ungültiges Datum daher kommt, wird NULL in die DB geschrieben.

gruss
chris.w.


als Antwort auf: [#472212]

Datumformat in mySQL umstellen

Phips_CH
Beiträge gesamt: 74

27. Mai 2011, 17:21
Beitrag # 5 von 23
Beitrag ID: #472524
Bewertung:
(8483 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo

da ich mit Dreamweaver arbeite, sieht mein Code etwas anderst aus.

Code
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) { 
$insertSQL = sprintf("INSERT INTO pobi_termine (ter_wann) VALUES (%s)",
GetSQLValueString($_POST['datum'], "date"));


Gruss
Phips_CH


als Antwort auf: [#472314]

Datumformat in mySQL umstellen

crisies
  
Beiträge gesamt: 136

27. Mai 2011, 18:45
Beitrag # 6 von 23
Beitrag ID: #472533
Bewertung:
(8468 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hi phips,

dreamweaver hat eigentlich nichts damit zu tun. die frage war ja eigentlich ob in mysql das datumformat umgestellt werden kann und die antwort wäre nein.

aber man kann die ausgabe/eingabe direkt via SQL umstellen. das war mein ansatz.

ihr ansatz das ganze über php umzustellen GetSQLValueString() geht natürlich auch.

gruss
chris.w.


als Antwort auf: [#472524]

Datumformat in mySQL umstellen

Phips_CH
Beiträge gesamt: 74

27. Mai 2011, 21:37
Beitrag # 7 von 23
Beitrag ID: #472544
Bewertung:
(8454 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hi

es scheint das ich da was verwechsle.

Meine ursprüngliche Frage war, ob es möglich wäre das Format des Datums so zu ändern das es das für uns "übliche" Format hat, nämlich das deutsche Format.

da dies aber nicht möglich ist, ging ich davon aus, dass ich das Datum nach dem Eingeben im PHP-Formular umwandeln muss.

das Umwanden der Eingabe/Ausgabe in mySQL kann ich noch nicht nachvollziehen. Sorry.

Gruss Phips_CH


als Antwort auf: [#472533]

Datumformat in mySQL umstellen

crisies
  
Beiträge gesamt: 136

27. Mai 2011, 21:43
Beitrag # 8 von 23
Beitrag ID: #472545
Bewertung:
(8444 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hi phips,

anstatt einer php-funktion, verwendest Du hierbei eine SQL-Funktion innerhalb deines Insert-Statements:

gem. Deinem Beispiel so
Code
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {  
$insertSQL = sprintf("INSERT INTO pobi_termine (ter_wann) VALUES (str_to_date(%s, '%d.%m.%Y'))",
mysql_real_escape_string($_POST['datum']));


Das in der Annahme das Datum kommt aus dem Formular mit dem Format Tag.Monat.Jahr


als Antwort auf: [#472544]

Datumformat in mySQL umstellen

Phips_CH
Beiträge gesamt: 74

28. Mai 2011, 13:42
Beitrag # 9 von 23
Beitrag ID: #472568
Bewertung:
(8393 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
also wenn ich deinen Code dort eingebe, wo meiner stand, erhalte ich den Fehler: Query was empty

ich steh wol auf dem Schlauch


als Antwort auf: [#472545]

Datumformat in mySQL umstellen

crisies
  
Beiträge gesamt: 136

28. Mai 2011, 16:13
Beitrag # 10 von 23
Beitrag ID: #472573
Bewertung:
(8372 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hi phips,

probiere es mal so:

Code
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {   
$insertSQL = sprintf("INSERT INTO pobi_termine (ter_wann) VALUES (str_to_date('%s', '%s'))",
mysql_real_escape_string($_POST['datum']),'%d.%m.%Y');


gruss
chris.w.


als Antwort auf: [#472568]

Datumformat in mySQL umstellen

Phips_CH
Beiträge gesamt: 74

28. Mai 2011, 20:41
Beitrag # 11 von 23
Beitrag ID: #472580
Bewertung:
(8355 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
das funktioniert.

Nun wenn ich nach dem senden, mit F5 die Seite aktualisiere, hab ich danach den selben Datensatz nocheinmal in der DB.
woher kommt das? und kann ich das verhindern?

wenn ich jetzt in diesem Formular mehrere Felder habe. die aber als Text formatier sind, hab ich versucht deinen Code anzupassen. jedoch ihne Erfolg.

Code
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form2")) 
{
$insertSQL = sprintf("INSERT INTO pobi_termine (ter_termin, ter_wann, ter_wo, ter_start, ter_ende, ter_treffpunkt, ter_treffpunktwo, ter_tenue, ter_bemerkung) VALUES (%s, str_to_date('%s', '%s'), %s)",
GetSQLValueString($_POST['ter_termin'], "text"),
GetSQLValueString($_POST['ter_wann'],"%d.%m.%Y"),
GetSQLValueString($_POST['ter_wo'], "text"));



als Antwort auf: [#472573]

Datumformat in mySQL umstellen

crisies
  
Beiträge gesamt: 136

30. Mai 2011, 17:19
Beitrag # 12 von 23
Beitrag ID: #472686
Bewertung:
(8287 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hi phips,

wenn du nach dem formularversand F5 drückst, wird das Formular nocheinmal versendet und somit nochmals einen Eintrag in der Datenbank generiert. das kannst du höchstens verhindern, wenn du entweder vor dem insert abfragst ob ein datensatz mit diesen informationen bereits existiert oder direkt in der db einen unique index auf diese 3 felder setzt.

wenn du diesen code erweitern willst, musst du in der sprintf-Funktion pro %s platzhalter auch einen parameter übergeben. Du hast nun 9 felder zu füllen gemäss dem insert und für das datum werden 2 platzhalter benötigt, also musst du auch 10 parameter übergeben:

Code
  $insertSQL = sprintf("INSERT INTO pobi_termine (ter_termin, ter_wann, ter_wo, ter_start, ter_ende, ter_treffpunkt, ter_treffpunktwo, ter_tenue,  ter_bemerkung) VALUES (%s, str_to_date('%s', '%s'), %s, %s, %s, %s, %s, %s, %s)",  
GetSQLValueString($_POST['ter_termin'], "text"),
GetSQLValueString($_POST['ter_wann'],"%d.%m.%Y"),
"%d.%m.%Y",
GetSQLValueString($_POST['ter_wo'], "text"),
GetSQLValueString($_POST['ter_start'], "text"),
GetSQLValueString($_POST['ter_ende'], "text"),
GetSQLValueString($_POST['ter_treffpunkt'], "text"),
GetSQLValueString($_POST['ter_treffpunktwo'], "text"),
GetSQLValueString($_POST['ter_tenue'], "text"),
GetSQLValueString($_POST['ter_bemerkung'], "text"));


gruss
chris.w.


als Antwort auf: [#472580]

Datumformat in mySQL umstellen

Phips_CH
Beiträge gesamt: 74

31. Mai 2011, 06:58
Beitrag # 13 von 23
Beitrag ID: #472701
Bewertung:
(8238 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vielen Danke.
Ich wollte den Code eigentlich verkürzt präsentieren und hab vergessen auch die sprintf-Funktion zu kürzen.

Der Fehler lag beim zusätzlichen Parameter "%d.%m.%Y"
Wozu brauch diesen Parameter den zweimal?

Gruss
Phips_CH


als Antwort auf: [#472686]

Datumformat in mySQL umstellen

crisies
  
Beiträge gesamt: 136

31. Mai 2011, 14:55
Beitrag # 14 von 23
Beitrag ID: #472767
Bewertung:
(8207 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
dieser sagt der mysql funktion str_to_date() in welchem format der datumsstring daher kommt.

gruss
chris.w


als Antwort auf: [#472701]

Datumformat in mySQL umstellen

Phips_CH
Beiträge gesamt: 74

31. Mai 2011, 15:03
Beitrag # 15 von 23
Beitrag ID: #472770
Bewertung:
(8202 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
kann ich das Datum den auch wieder anzeigen?

hab es mit

Code
echo $row_datum['ter_wann'],"%d.%m.%Y"; 


versucht. jedoch erfolglos.


als Antwort auf: [#472767]
X