在Mysql中插入日期和时间

时间:2010-05-28 14:56:01

标签: php mysql datetime date insert-id

我正在尝试将日期和时间插入到mysql datetime字段中。当用户选择日期和时间时,它将生成两个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

如果有人能帮助我,我感激不尽。感谢。

6 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:4)

日期必须显示格式:0000-00-00 00:00:00

所以,你必须转换它。关于这种转换的问题有很多关于SO的问题 最短的方式就像

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

答案 2 :(得分:3)

我认为日期时间格式如下所示:

YYYY-MM-DD HH:MM:SS

所以你必须将你的$ datetime格式化为这样。并且在您的查询中需要封装在quoation标记中。

答案 3 :(得分:2)

  • 您可以自己将字符串转换为YYYY-MM-DD HH:MM:SS格式,
  • 或者您使用MySQL的str_to_date()函数。

    INSERT INTO表DATETIME值(str_to_date($ date,“%m /%d /%Y%h:%i”))

答案 4 :(得分:1)

据我记得,默认情况下,Mysql datetime应为“yyyy-mm-dd hh:mm:ss”格式。

答案 5 :(得分:0)

我已经通过API在mysql db中添加了日期和时间,如下所示:


调用API

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

  1. odate类型为DATE
  2. otime类型为DB中的TIME。

  3. 它会将odate存储为2012-03-23,将otime存储为16:45:45。