5

我有以下问题。我有一个字符串,它包含如下时间和日期:dd/MM/yy hh:mm:ss 这是我在 PHP 中的。然后我有一个 MySQL 数据库,它有一个日期时间格式的列,我需要在其中插入这个值。显然问题是,格式不同,所以不是实际日期,而是字段“0000-00-00 00:00:00”。

你能帮我转换这个字符串,然后把它正确地插入 MySQL 吗?对于 MySQL,我使用标准的 INSERT INTO 命令。

4

4 回答 4

7

DATETIME文档中:

MySQL 以格式检索和显示DATETIME值。YYYY-MM-DD HH:MM:SS

我会使用 PHP 的 DateTime 类和DateTime::createFromFormat()方法,并将数据转换为与 MySQL 兼容的日期字符串,如下所示:

$date = DateTime::createFromFormat('d/m/Y H:i:s', $yourDateString);
$dateToBeInserted = $date->format('Y-m-d H:i:s');
于 2013-09-29T17:21:46.433 回答
2

编写一个函数来转换日期,

function sqldate($date)
{
   $sql_date = date('Y-m-d H:i:s',strtotime($date));
   return $sql_date;
}

你的查询看起来像,

$query = "INSERT INTO tableName (dateColumn) VALUES('".sqldate($date)."') ";
于 2013-09-29T17:12:59.167 回答
0

您可以使用STR_TO_DATE()以及您的INSERT语句来转换它,例如。

INSERT INTO tableName (dateColumn)
VALUES(STR_TO_DATE('dd/MM/yy hh:mm:ss','%d/%m/%y %H:%i:%s'))
于 2013-09-29T17:13:38.617 回答
0

尝试这个:

$parsedDate = date('Y-m-d H:i:s', strtotime($yourDate));
// Insert $parsedDate into your table column Date
于 2013-09-29T17:14:04.627 回答