Cat*_*ish 1 php sql codeigniter
我正在开发一个codeigniter项目,我正在尝试解决sql问题.我有一个查询更新我的表中的日期字段,它根本不更新它.
我有这张桌子
CREATE TABLE `Customer` (
`customer_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`first_name` varchar(55) NOT NULL DEFAULT '',
`last_name` varchar(55) NOT NULL DEFAULT '',
`city` varchar(255) DEFAULT '',
`state` char(2) DEFAULT '',
`zip` int(5) DEFAULT NULL,
`title` varchar(255) NOT NULL DEFAULT '',
`image` varchar(255) DEFAULT '',
`blurb` blob,
`end_date` date DEFAULT NULL,
`goal` int(11) DEFAULT NULL,
`paypal_acct_num` int(11) DEFAULT NULL,
`progress_bar` enum('full','half','none') DEFAULT NULL,
`page_views` int(11) NOT NULL DEFAULT '0',
`total_pages` int(11) NOT NULL DEFAULT '0',
`total_conversions` int(11) NOT NULL DEFAULT '0',
`total_given` int(11) NOT NULL DEFAULT '0',
`conversion_percentage` int(11) NOT NULL DEFAULT '0',
`avg_contribution` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`customer_id`)
) ENGINE=MyISAM AUTO_INCREMENT=15 DEFAULT CHARSET=utf8;
Run Code Online (Sandbox Code Playgroud)
当我运行此查询以插入数据时,它运行正常并将日期设置为 2012-11-01
INSERT INTO `Customer` (`first_name`, `last_name`, `end_date`) VALUES ('John', 'Smith2', '2012-11-01');
Run Code Online (Sandbox Code Playgroud)
然后我得到customer_id并尝试运行此查询
UPDATE `Customer` SET `end_date` = '2012-14-01' WHERE `customer_id` = '18';
Run Code Online (Sandbox Code Playgroud)
并将日期end_date字段设置为0000-00-00.
为什么它将结束日期改为0000-00-00而不是2012-14-01?
2012-14-01 是第十四个月的第一天:)
(因此它的无效日期,因此被转换为mysql返回0000-00-00并Data truncated for column 'end_date' at row 1发出警告,你可以通过查看SHOW WARNINGS错误行为后立即查询到mysql)
2012-01-14 是1月14日.
| 归档时间: |
|
| 查看次数: |
89 次 |
| 最近记录: |