2017-07-25 71 views
0

我想更新具有名为date_start的时间戳数据类型的行。这里有一个例子:MySQL - 更新行的日期并节省时间

date_start = 2017-04-26 12:34:11  

我想更新它,但为了节省时间,所以它会是这样的:

date_start = 2017-05-28 12:34:11 

任何想法?到目前为止,我尝试了提取方法和concat方法。

问候..

+0

问题是你不知道如何使用'UPDATE'查询或什么?您试图使用提取和concat方法的陈述完全没有任何意义。 – Mjh

+0

我知道如何使用'UPDATE'查询,但我不知道如何仅在时间戳字段中更新日期。 –

+0

[MySQL DATETIME - 仅更改日期]的可能重复(https://stackoverflow.com/questions/4695117/mysql-datetime-change-only-the-date) – Malik

回答

0

如果你只是想更新时间戳的日期部分,同时保留时间组件,那么你可以建立使用字符串连接更新的时间戳和TIME()

UPDATE yourTable 
SET date_start = CONCAT('2017-05-28 ', TIME(date_start)) 
WHERE <some condition> 

Demo

+0

你好。谢谢回复。这一个将date_start字段转换为0000-00-00 00:00:00。 –

+0

不,这不应该发生。你运行了我的_exact_查询吗? –

+0

是的。这里是查询: '更新运动 SET date_start = CONCAT('2017-07-25',TIME(date_start)) WHERE id = 918' –