Sql 更新日期字段
我继承了MYSQL数据库,它有很多表,其中包含Sql 更新日期字段,sql,Sql,我继承了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
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 ;
开始日期和结束日期应具有如下值:
- 2007-1-52007-12-31
- 2008-1-112008-12-31
- 2009-1-152009-12-31
我不知道MySQL中是否存在DATEADD和DATEDIFF,但我强烈建议使用某种日期函数,而不是转换为字符串并以这种方式操作它们 在MS SQL SERVER中,这将起作用
UPDATE
ejl_registration
SET
end_date = DATEADD(YEAR, 1 + DATEDIFF(YEAR, 0, start_date), 0)
WHERE
(end_date) IS NULL OR (end_date = '0000-00-00')
小字体:end_date='0000-00-00'
UPDATE
ejl_registration
SET
end_date = DATEADD(YEAR, 1 + DATEDIFF(YEAR, 0, start_date), 0)
WHERE
(end_date) IS NULL OR (end_date = '0000-00-00')