MySQL DATETIME - 仅更改日期

25
开始时间是:2011年01月17日09:30:00
假设我想仅编辑日期以变为2011年01月28日,最有效的方法是什么,以便得到2011年01月28日09:30:00?
谢谢!
对于那些说要使用Date_Add...的人,那需要我先减去日期再加上天数。虽然这也是一种可能性,但我希望能够避免这一步骤,只需“替换”日期即可。

年份会一直保持不变吗? - rownage
7个回答

68

如果你真的不想使用date_add函数,你可以考虑使用这个构造:

UPDATE table_name SET field_name = concat('2011-01-12 ', time(field_name)) 

请确保在日期后面加上一个空格('2011-01-12')。


2
节省了我很多压力。也可以与WHERE条件一起使用,效果很好。 - OmniPotens

18

将其提前5天更改:

UPDATE yourTableName
SET myDate1 = myDate1 + INTERVAL 5 DAY
WHERE myDate1 = dateIWantToChange

(你也可以使用MONTH、YEAR等)


1
由于某种原因,当我正确拼写上方的单词“update”时,我的答案无法提交。奇怪。 - rownage

3

也许,使用DATE_ADD是一个不错的选择。 链接文本


2

查询检查

 update yourtable set eventtime=replace(eventtime,substr(eventtime,1,10), '2013-07-17')  WHERE  `id`=4

1

将要使用类似以下的内容:

CONCAT('2011-01-28 ',DATE_FORMAT(original_timestamp, '%H:%i:%s'))

1

0

只需使用:

UPDATE table_name set column_name= DATE_FORMAT(column_name,'%Y-%m-28 %H:%i-%s');

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接