更新MySQL表中的Varchar条目

更新MySQL表中的Varchar条目,mysql,date,varchar,create-table,Mysql,Date,Varchar,Create Table,字段deptime包含以下格式的条目:2012-09-04 09:17 现在我需要更改此字段中所有条目的日期,即2013-07-01 09:17。不应更改时间,即09:17。如何使用一些UPDATE查询快速完成此操作?试试这个- CREATE TABLE `Schedule` ( `id` smallint(6) NOT NULL AUTO_INCREMENT, `name` varchar(30) DEFAULT NULL, `deptime` varchar(20) DEFAUL

字段
deptime
包含以下格式的条目:
2012-09-04 09:17

现在我需要更改此字段中所有条目的日期,即
2013-07-01 09:17
。不应更改时间,即
09:17
。如何使用一些
UPDATE
查询快速完成此操作?

试试这个-

CREATE TABLE `Schedule` (
  `id` smallint(6) NOT NULL AUTO_INCREMENT,
  `name` varchar(30) DEFAULT NULL,
  `deptime` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3221 DEFAULT CHARSET=latin1;
1) 在day字段中给出硬代码值,或者提供PHP变量(如果有的话)。 2) 在str_to_date函数中,24小时格式使用%H,12小时格式使用%H-

CREATE TABLE `Schedule` (
  `id` smallint(6) NOT NULL AUTO_INCREMENT,
  `name` varchar(30) DEFAULT NULL,
  `deptime` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3221 DEFAULT CHARSET=latin1;
1) 在day字段中给出硬代码值,或者提供PHP变量(如果有的话)。 2) 在str_to_date函数中使用%H表示24小时格式,使用%H表示12小时格式,或者尝试此

update table Schedule 
set deptime = STR_TO_DATE(deptime,'%Y-%m-7 %h: %i');
OR
update table Schedule 
set deptime = STR_TO_DATE(deptime,'%Y-%m-$PHPVar %h: %i');
或者试试这个

update table Schedule 
set deptime = STR_TO_DATE(deptime,'%Y-%m-7 %h: %i');
OR
update table Schedule 
set deptime = STR_TO_DATE(deptime,'%Y-%m-$PHPVar %h: %i');

如果您使用
时间戳
或类似的列类型,这将更容易@Sirko:问题是,一个表有一个预定义的数据集,该数据集以前是为此表创建的。我应该使用这个数据集,但必须修改日期。这就是我无法重新定义表的原因。如果您使用
时间戳
或类似的列类型,这将容易得多@Sirko:问题是,一个表有一个预定义的数据集,该数据集以前是为此表创建的。我应该使用这个数据集,但必须修改日期。这就是我无法重新定义表的原因。