仅更新MySQL TIMESTAMP的时间部分

时间:2011-08-13 20:03:45

标签: mysql timestamp

我有一个包含以下内容的TIMESTAMP列:

2011-10-12 12:00:00

现在我希望能够使用用户输入来更改时间,而不是日期。因此,如果用户输入5:00 pm我首先将输入转换为17:00:00,那么我的问题是将TIMESTAMP更新为2011-10-12 17:00:00而不覆盖日期。用户可以随时选择,但它们仅限于今天,我需要将日期和时间存储在同一列中,因为它已经在应用程序的许多其他部分中使用。

注意:如果没有SELECT可以更新TIME部分,我宁愿不在更新之前首先选择TIMESTAMP

我查看了DATE TIME函数,并且有很多方法可以添加时间间隔,但我还是没有看到将其设置为特定的时间。

2 个答案:

答案 0 :(得分:3)

update table 
set datetime_field = concat_ws(' ',date(datetime_field), '17:00:00') where id = x

答案 1 :(得分:0)

UPDATE tab 
SET ts_field = ADDTIME(DATE(ts_field), new_time) 
WHERE id = ?;