2010-05-28 7 views
11

Ich versuche, Datum und Uhrzeit in Mysql Datetime Feld einzufügen. Wenn ein Benutzer ein Datum und eine Uhrzeit auswählt, generiert er zwei POST-Variablen. Ich habe im Internet gesucht, bin aber immer noch nicht sicher, wie es geht.Einfügen von Datum und Uhrzeit in Mysql

Mein Code.

//date value is 05/25/2010 
//time value is 10:00 

$date=$_POST['date']; 
$time=$_POST['time']; 

$datetime=$date.$time 

Wenn ich $ Datetime in mysql einfügen, wird das Datum sein 0000-00-00 00: 00: 00

ich es begrüßen, wenn jemand mir darüber helfen könnte. Vielen Dank.

+1

+1 auf alle antworten! Danke GSTos Antwort! – FlyingCat

Antwort

7
$datetime = $_POST['date'] . ' ' . $_POST['time'] . ':00'; 
$datetime = mysql_real_escape_string($datetime); 
$query = "INSERT INTO table(timestamp) VALUES ('$datetime')"; 

alternative Lösung, die mehr Formate verarbeiten kann:

$datetime = $_POST['date'] . ' ' . $_POST['time']; 
$datetime = mysql_real_escape_string($datetime); 
$datetime = strtotime($datetime); 
$datetime = date('Y-m-d H:i:s',$datetime); 
$query = "INSERT INTO table(timestamp) VALUES ('$datetime')"; 
+0

nette Lösung! Vielen Dank! – FlyingCat

+0

hm .... jemand gab Ihnen -1 .. nicht sicher, warum ... – FlyingCat

+1

Weil das erste Snippet eine SQL-Injection-Schwachstelle enthält. Noch ein -1 von mir.:-P :-) – Notinlist

3

ich glaube, das Datetime-Format wie folgt aussieht:

YYYY-MM-DD HH:MM:SS 

so haben Sie, Ihre $ Datetime-Format so aussehen. Und in Ihrer Abfrage, die in Quotierungszeichen eingekapselt werden muss.

2
  • Entweder Sie verwandeln die Zeichenfolge im YYYY-MM-DD HH:MM:SS Format selbst zu sein,
  • oder verwenden Sie die str_to_date() Funktion von MySQL.

    INSERT INTO Tabelle DATETIME- Werte (str_to_date ($ date "% m /% d /% Y% h:% i"))

1

Soweit ich mich erinnere, standardmäßig Mysql Datetime sollte im Format "JJJJ-MM-TT HH: MM: SS" sein.

4

Datum muss Format Ihnen gezeigt haben: 0000-00-00 00:00:00

So haben Sie es zu konvertieren. Es gibt tausend Fragen über diese Umwandlung hier auf SO.
Der kürzeste Weg ist wie

list($m,$d,$y) = explode("/",$_POST['date']); 
$date = mysql_real_escape_string("$y-$m-$d ".$_POST['time']); 
0

ich Datum und Uhrzeit in MySQL-Datenbank über API wie folgt hinzugefügt:

http://localhost/SendOrder.php?odate=20120323&otime=164545

  1. odate Typ

    Anruf API ist das Datum

  2. otime Typ ist TIME in DB.

Es speichert odate wie 2012-03-23 ​​und O ZEIT als 16.45.45.