将日期和时间插入Mysql
Posted
技术标签:
【中文标题】将日期和时间插入Mysql【英文标题】:Insert date and time into Mysql 【发布时间】:2011-02-25 04:21:49 【问题描述】:我正在尝试将日期和时间插入 mysql 日期时间字段。当用户选择日期和时间时,它将生成两个 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
如果有人能帮助我解决这个问题,我将不胜感激。谢谢。
【问题讨论】:
+1 所有回复!感谢GSTo的回答! 【参考方案1】:$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')";
【讨论】:
因为第一个sn-p包含SQL注入漏洞。我还有一个-1。 :-P :-) @Noninlist - 来自 *** 的代码 sn-ps 不应逐字剪切和粘贴。我解决了手头的问题。但只是为了你,我添加了对 mysql 真实转义字符串的调用【参考方案2】:日期必须具有显示给您的格式:0000-00-00 00:00:00
所以,你必须转换它。 SO上有上千个关于这种转换的问题。 最短的方法是
list($m,$d,$y) = explode("/",$_POST['date']);
$date = mysql_real_escape_string("$y-$m-$d ".$_POST['time']);
【讨论】:
【参考方案3】:我认为日期时间格式如下:
YYYY-MM-DD HH:MM:SS
所以你必须格式化你的 $datetime 看起来像那样。并且在您的查询中需要用引号括起来。
【讨论】:
【参考方案4】: 或者您自己将字符串转换为YYYY-MM-DD HH:MM:SS
格式,
或者你使用 MySQL 中的 str_to_date()
函数。
INSERT INTO 表 DATETIME 值 (str_to_date($date,"%m/%d/%Y %h:%i"))
【讨论】:
【参考方案5】:据我所知,默认情况下,Mysql 日期时间应该是“yyyy-mm-dd hh:mm:ss”格式。
【讨论】:
【参考方案6】:我已经通过这样的 API 在 mysql db 中添加了日期和时间:
调用接口
http://localhost/SendOrder.php?odate=20120323&otime=164545
odate
类型为日期
otime
类型是 DB 中的 TIME。
它将 odate 存储为 2012-03-23,otime 存储为 16:45:45。
【讨论】:
以上是关于将日期和时间插入Mysql的主要内容,如果未能解决你的问题,请参考以下文章