我继承了 MYSQL 数据库,该数据库有很多包含数据的表
CREATE TABLE IF NOT EXISTS `ejl_registration` (
`id` int(11) NOT NULL auto_increment,
`team_id` int(11) default NULL,
`start_date` date default NULL,
`end_date` date default NULL,
PRIMARY KEY (`id`),
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=88668 ;
start_date 和 end_date 的值应如下所示:
- 2007年1月5日、2007年12月31日
- 2008年1月1日、2008年12月31日
- 2009-1-15,2009-12-31
但其中一些 en_date 字段要么为 NULL,要么为 0000-00-00。 有没有办法让单个查询更新所有这些无效的 en_date 字段并将其值设置为等于 start_date 年份的年底
最佳答案
试试这个(请仔细检查,我还没有测试过该命令):
UPDATE `ejl_registration` SET `end_date`= CONCAT(YEAR(`start_date`),'-12-31')
WHERE `end_date` IS NULL OR `end_date` = '0000-00-00';
关于sql - 更新日期字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/464425/