【发布时间】:2015-03-17 14:11:46
【问题描述】:
当我尝试在我的数据库中插入日期时,MySql 出现问题。
我的表有一个日期时间列,当我用 PHP 插入一些值时,比如
INSERT INTO table (column1,column2) VALUES ('1','2010-11-20');
[Column2 是 DATETIME]
我的结果,在我的数据库中是 '1' 和 '0000-00-00 00:00:00' 我不知道为什么,因为这有效.... :S.
可能是什么问题?
对不起...我再解释一下我的问题
我从格式为“20-11-2010”的文件中读取这些值,然后更改为 MySql 格式(这很容易)并编写插入语句。
我的插入语句很好,我把它放在其他文件(如 .log)中,结果是:
INSERT INTO telephones (telephone,date) VALUES ('123456789','2014-18-11');
但是如果我查看我的数据库,结果是:
'123456789' and '0000-00-00 00:00:00'
编辑:
但在某些情况下,我有 '2010-11-20 16:30:20' 这样的值。如果我将 DATETIME 更改为 DATE,我将丢失此值。
我的数据值来自一个文件,值是这样的
'123456789''20-11-2010 16:00:00' [First value is a telephon number and the next is the date]
但在某些情况下,我会收到没有时间的日期。
当我重新定义日期时,我使用explode() 更改了值,然后按下一个顺序返回值
$myDate = $date[2]."-".$date[1]."-".$date[0];
当我构建我的插入时,我尝试使用 @entiendoNull 解决方案,例如
date("Y-m-d H:i:s", strtotime($myDate));
但这放入了我的插入句“1970-01-01 XX:xx:xx”
【问题讨论】:
-
您遇到错误了吗?将其输入数据库的 PHP 在哪里?我们需要更多的努力。
-
难道你也需要指定时间..?如果您只想将日期设置为“日期”而不是“日期时间”。
-
确保你的 php $value 真的是 '2010-11-20'
-
是的,这是一个正确的类型,因为有时我有起息日期和时间,因此,我的数据库中需要 datetime。我在 PHP 中的值是正确的。
-
尝试插入:
$formattedDate = date("Y-m-d H:i:s", strtotime($value));$value 包含一个日期,例如 2015-01-19