web-dev-qa-db-ja.com

Mysqlに日付と時刻を挿入します

Mysqlのdatetimeフィールドに日付と時刻を挿入しようとしています。ユーザーが日付と時刻を選択すると、2つのPOST変数が生成されます。インターネットを検索しましたが、その方法がわかりません。

私のコード。

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

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

$datetime=$date.$time

$ datetimeをmysqlに挿入すると、日付は0000-00-00:00:00:00のように見えます

誰かがこれについて私を助けることができれば私はそれを感謝します。ありがとう。

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

より多くのフォーマットを処理できる代​​替ソリューション:

$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')";
7
GSto

日付には、次の形式が表示されている必要があります:0000-00-00 00:00:00

だから、あなたはそれを変換する必要があります。ここSOでは、この変換について何千もの質問があります。
最短の方法は次のようなものです

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

日時の形式は次のようになります。

YYYY-MM-DD HH:MM:SS

そのため、$ datetimeをそのようにフォーマットする必要があります。そして、クォーテーションマークでカプセル化する必要があるクエリで。

3
vicatcu
  • 文字列を自分で_YYYY-MM-DD HH:MM:SS_形式に変換するか、
  • または、MySQLのstr_to_date()関数を使用します。

    INSERT INTOテーブルのDATETIME値(str_to_date($ date、 "%m /%d /%Y%h:%i"))

2
Konerak

私が覚えている限り、デフォルトでは、Mysqlの日時は「yyyy-mm-ddhh:mm:ss」形式である必要があります。

1
a1ex07

私は次のようなAPIを介してmysqldbに日付と時刻を追加しました:


APIを呼び出す

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

  1. odateタイプはDATEです
  2. otimeタイプはDBのTIMEです。

大館は2012-03-23として、otimeは16:45:45として保存されます。

0