格式正确的MySQL日期插入语句返回全0

时间:2010-02-02 15:53:07

标签: php mysql date

我创建了一个PHP脚本,用于解析HTML页面,创建MySQL查询,并将解析后的数据插入到MySQL表中。一切正常,除了一件事:日期字段。当PHP运行MySQL语句时,表中的日期为0000-00-00。如果我回显MySQL查询,则会产生以下结果:

INSERT INTO dispatch_table (dispatch_date, dispatch_time, dispatch1, dispatch2, dispatch3, dispatch4, dispatch5, dispatch6, dispatch7, dispatch8, dispatch9, dispatch10, dispatch11, dispatch12, dispatch13, dispatch14, dispatch15, dispatch16)VALUES ('2010-02-02', '10:46:17', '31.90' , '32.15','32.24','32.39','33.46','35.18','39.33','39.39','40.92','41.79','41.82','44.35','45.47','46.89','47.13','67.59');

如果我将语句复制并粘贴到MySQL表中,它会很好地插入日期,但是当PHP试图插入它时,我得到全部0。 dispatch_date字段是MySQL中的“日期”字段。在使用PHP代码插入日期之前,要插入的日期将转换为字符串(我认为这可能会解决我的问题)。任何人都可以给我任何见解吗?

2 个答案:

答案 0 :(得分:1)

来自tizag.com

  

输入日期时   a的范围或格式错误   给定日期类型,MySQL通常只是   输入默认值all   零。

您以错误的格式存储它们。

答案 1 :(得分:0)

2010-02-02(%Y-%m-%d)是默认格式,但可以更改。运行此查询以了解服务器中的值:

SELECT @@date_format, @@datetime_format;

如果它们不匹配,您必须更改查询或更改@@ date_format和@@ datetime_format变量。它们可以按会话更改:

SET @@session.date_format='%Y-%m-%d';
SET @@session.datetime_format='%Y-%m-%d %H:%i:%s';