insert ... Datumsformat

Alles, was MariaDB und MySQL betrifft, kann hier besprochen werden.

insert ... Datumsformat

Postby horstschulz » 10. May 2007 19:52

Ich möchte aus einem php-Script den String 21.04.2007, also ein Datum in Format Charakter, in ein Datumsformat umwandeln, damit er in die mysql-Tabelle, Format = date abgespeichert werden kann.
Ich bekomme es nicht hin.
Im Formular:
.
.
$datum = „21.04.2007“;
.
.

$query = "INSERT INTO user_messages (messages_datum) VALUES (‘" .$datum."’)";
.
.

Hilfe.- und Suchfunktionen schon benutzt, aber nur Hinweise zum auslesen eines Datumsfeld gefunden, aber kein insert oder update
ich hasse Streß
Horst
horstschulz
 
Posts: 71
Joined: 29. December 2002 11:38
Location: Stade

Postby KingCrunch » 10. May 2007 21:05

Würds eher per PHP mit strftime und mktime machen.
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby Mätes » 11. May 2007 08:01

gerade wenn es aus einem formuar kommt, würde ich es auch per PHP machen.

kannst das einfach per
$date = strtotime($datumformular);
$date = date('Y-m-d', $date);
umwandeln, überprüfen obs sinn macht, und dann rein in den insert.

Willst du es unbedingt per SQL erledigen, schau unter der funktion
SUBSTRING() nach:
http://dev.mysql.com/doc/refman/5.0/en/ ... _substring


gruß
ma
User avatar
Mätes
 
Posts: 142
Joined: 13. April 2006 09:34
Location: kölle

Postby Wiedmann » 11. May 2007 08:32

Auch wenn das mit PHP5.2 zufällig tut, würde ich in strtotime() kein deutsches Datumsformat verwenden...
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Mätes » 11. May 2007 09:50

wo ist das problem?

echo date('Y-m-d', strtotime('8.10.2007'));
echo date('Y-m-d', strtotime('7.30.2007'));

ergibt:
2007-10-08
1970-01-01

d.h. US-Format (mm.dd.yyyy) interpretiert die funktion nicht.

oder meinst du etwas anderes?

ma
User avatar
Mätes
 
Posts: 142
Joined: 13. April 2006 09:34
Location: kölle

Postby KingCrunch » 11. May 2007 12:32

@Wiedmann: Deshalb hab ich noch mktime vorgeschlagen.

@Mätes: Wenn ich in der Schule nicht ganz geschlafen habe, benutzen die Amerikaner auch keine Punkte als Trenner, sondern Bindestriche.
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby Mätes » 11. May 2007 14:21

vor allen dingen schreiben sie meist

mm-dd-yyyy

und ich dachte das es ihm darauf ankommt.

meine punkte hat er noch immer gefressen.
User avatar
Mätes
 
Posts: 142
Joined: 13. April 2006 09:34
Location: kölle

Postby Wiedmann » 11. May 2007 17:14

wo ist das problem?
Code: Select all
echo date('Y-m-d', strtotime('8.10.2007'));

ergibt:
2007-10-08

Code: Select all
bsdserver-1-node3# ./bin/php -r 'echo date("Y-m-d", strtotime("8.10.2007")).PHP_EOL;'
1970-01-01
bsdserver-1-node3#


Wie gesagt:
Wiedmann wrote:Auch wenn das mit PHP5.2 zufällig tut,


Da dieses Format ja nicht in der Doku zu "Date Input Formats" steht, würde ich das nie benutzen, weil das Verhalten dann wirklich spekulatv ist.

BTW:
d.h. US-Format (mm.dd.yyyy) interpretiert die funktion nicht.

Was dann aber so aussehen müsste: mm/dd/yyyy
Tatsächlich versteht sich dieses Funktion gerade auf Datumsangaben in US English (EN_US) und nicht unbedingt auf Britisch English (EN_EN).
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany


Return to MariaDB - MySQL

Who is online

Users browsing this forum: No registered users and 1 guest