在datetime列中插入日期时SQL中出错

时间:2015-01-19 14:27:54

标签: php mysql datetime

当我尝试在数据库中插入日期时,我在MySql中遇到了问题。

我的表有一个datetime列,当我用PHP插入一些值时,如

INSERT INTO table (column1,column2) VALUES ('1','2010-11-20');

[Column2是DATETIME]

我的结果,在我的数据库中是' 1' 00: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]

但在某些情况下,我没有时间就收回日期。

当我reed the date时,我使用explode()更改了值,并按下一个顺序返回值

$myDate = $date[2]."-".$date[1]."-".$date[0];

当我构建插入时,我尝试@entiendoNull解决方案,如

日期(" Y-m-d H:我:s",strtotime($ myDate));

但这放入我的插入句子" 1970-01-01 XX:xx:xx"

2 个答案:

答案 0 :(得分:0)

您尝试将DATE格式的信息插入到接受DATETIME的列中。

总结一下,您要么必须将表中的列更改为“DATE”,要么(更好)只需将00:00:00作为时间插入:

INSERT INTO table (column1,column2) VALUES ('1','2010-11-20 00:00:00');

答案 1 :(得分:0)

按以下方式设置日期格式,然后尝试插入日期:

$formattedDate = date("Y-m-d H:i:s", strtotime($value)); //$value holds a date e.g. 2015-01-19 or a datetime e.g. 2015-01-19 10:58:01