我有以下问题。我有一个字符串,它包含如下时间和日期:dd/MM/yy hh:mm:ss 这是我在 PHP 中的。然后我有一个 MySQL 数据库,它有一个日期时间格式的列,我需要在其中插入这个值。显然问题是,格式不同,所以不是实际日期,而是字段“0000-00-00 00:00:00”。
你能帮我转换这个字符串,然后把它正确地插入 MySQL 吗?对于 MySQL,我使用标准的 INSERT INTO 命令。
从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');
编写一个函数来转换日期,
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)."') ";
您可以使用STR_TO_DATE()以及您的INSERT
语句来转换它,例如。
INSERT INTO tableName (dateColumn)
VALUES(STR_TO_DATE('dd/MM/yy hh:mm:ss','%d/%m/%y %H:%i:%s'))
尝试这个:
$parsedDate = date('Y-m-d H:i:s', strtotime($yourDate));
// Insert $parsedDate into your table column Date