Как обновить только время в уже существующем поле DateTime в MySQL? Я хочу, чтобы дата осталась прежней.
Обновить только время в поле mysql DateTime
Ответ 1
Попробуйте следующее:
UPDATE yourtable SET yourcolumn=concat(date(yourcolumn), ' 21:00:00') WHERE Id=yourid;
Ответ 2
Попробуйте следующее:
UPDATE t1 SET DateTimeField = CONCAT(DATE(DateTimeField),' 12:34:56');
Ответ 3
Я решил так:
UPDATE table
SET myDateTime = CONCAT_WS(' ',DATE(myDateTime), CURTIME())
WHERE id = @id;
Очевидно, вы должны изменить CURTIME()
с нужным временем.
Ответ 4
UPDATE myTable
SET myDateTime = ADDTIME(DATE(myDateTime), @myTimeSpan)
WHERE id = @id;
Документировано в функциях даты MySQ Документация по MySQL
Ответ 5
UPDATE myTable
SET myDateTime = ADDTIME(myDateTime, @myTimeSpan)
WHERE id = @id;
Для точного синтаксиса функции см. this.
Ответ 6
Попробуйте следующее:
UPDATE sms
SET entry_period_end_date= entry_period_end_date+INTERVAL 6 Hour
WHERE TIME(entry_period_end_date) = '06:00:00';
Ответ 7
UPDATE `table`
SET time = ADDTIME(time, INTERVAL 13 Hour);
Ответ 8
Ну, именно то, что вы просите, невозможно. Компоненты даты и времени не могут обновляться отдельно, поэтому вам нужно вычислить новое значение DateTime из существующего, чтобы вы могли заменить все значение.
Ответ 9
На странице MySQL DEV отображаются такие функции, как subtime
и difftime
Пример кода для возврата времени, когда все сообщения за 3 часа превышают:
UPDATE tablepost SET datepost = SUBTIME( datepost , '0 3:0:0' );
Обратите внимание, что значения 0 не изменяют соответствующее поле. Позаботьтесь об этом коде, сначала используйте функцию select для проверки этих функций.
Ссылка: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_subtime
Ответ 10
Если у вас есть поле DATE и TIME, и вы хотите ввести время в дату, попробуйте следующее:
UPDATE mytable
SET mydatefield = ADDTIME( DATE_FORMAT(mydatefield,'%Y-%m-%d 00:00:00'), mydatefield)
WHERE myid = ...