Обновите только временную часть MySQL TIMESTAMP - PullRequest
1 голос
/ 14 августа 2011

У меня есть столбец TIMESTAMP, содержащий:

2011-10-12 12:00:00

Теперь я хочу иметь возможность использовать пользовательский ввод для изменения только времени, а не даты.Итак, если пользователь вводит 5:00 pm, я сначала преобразовываю ввод в 17:00:00, тогда моя проблема в ОБНОВЛЕНИИ TIMESTAMP до 2011-10-12 17:00:00 без перезаписи даты.Пользователь может выбрать любое время, но оно ограничено по сей день, и мне нужно сохранить дату и время в том же столбце, как это, потому что он уже используется во многих других частях приложения.

Примечание:Я бы предпочел не выбирать SELECT TIMESTAMP перед обновлением, если возможно ОБНОВИТЬ только часть ВРЕМЕНИ без SELECT.

Я посмотрел функции DATE TIME, и есть много способов добавить интервал ввремя, но я не вижу, чтобы установить его на что-то конкретное.

Ответы [ 2 ]

3 голосов
/ 14 августа 2011
update table 
set datetime_field = concat_ws(' ',date(datetime_field), '17:00:00') where id = x
0 голосов
/ 14 августа 2011
UPDATE tab 
SET ts_field = ADDTIME(DATE(ts_field), new_time) 
WHERE id = ?;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...