2011-08-13 100 views
1

的時間部分我有包含timestamp列:僅更新MySQL的TIMESTAMP

2011-10-12 12:00:00 

現在我希望能夠把用戶輸入只更改時間,而不是日期。因此,如果用戶輸入5:00 pm我首先將輸入轉換爲17:00:00,那麼我的問題是將TIMESTAMP更新爲2011-10-12 17:00:00而不覆蓋日期。用戶可以選擇任何時間,但是他們僅限於這一天,並且我需要將日期和時間存儲在同一列中,因爲它已經在應用程序的許多其他部分中使用。

注意:我不希望在更新前先選擇TIMESTAMP,如果可以更新沒有SELECT的TIME部分。

我查看了DATE TIME函數,並且有很多方法可以給時間添加一個間隔,但是我沒有看到將它設置爲特定的。

回答

3
update table 
set datetime_field = concat_ws(' ',date(datetime_field), '17:00:00') where id = x 
0
UPDATE tab 
SET ts_field = ADDTIME(DATE(ts_field), new_time) 
WHERE id = ?;