SQL - как заменить диапазон datetime одним будущим datetime? - PullRequest
1 голос
/ 13 февраля 2011

Это простой вопрос о дате и времени в SQL, но я не хочу портить мою базу данных!

Например, в базе данных MySQL, если я хочу заменить все значения даты и времени между датой X и датой Y в одном столбце в одной из моих таблиц - что это за команда SQL? Пример: я хочу заменить все значения даты и времени в январе этого месяца на будущие дату / время в марте.

Я знаю, как выбрать диапазон дат и времени благодаря другим вопросам StackOverflow - пример:

select * from table where DatetimeField between '22/02/2009 09:00:00.000' and '23/05/2009 10:30:00.000'

Но как добавить к нему функцию replace ()?

Заранее спасибо за помощь - я сделал резервную копию базы данных на всякий случай!

Ответы [ 3 ]

5 голосов
/ 13 февраля 2011

Вам не нужна функция, простой оператор UPDATE помогает.Вот пример комментария SQL-кода, если я правильно понял ваш вопрос:

1 голос
/ 13 февраля 2011
UPDATE table
SET DateTimeField = '2011-03-17'
WHERE DateTimeField >= '2011-01-01'
    and DateTimeField < '2011-02-01'

Между включается, поэтому, если вы хотите исключить точную дату окончания, вы должны использовать синтаксис> = и <. </p>

1 голос
/ 13 февраля 2011

Вы используете запрос update для обновления значений в таблице.Это отфильтрует записи с выбранными датами и поместит новую дату в поле:

update table
set DatetimeField = '01/03/2009 09:00:00.000'
where DatetimeField between '22/02/2009 09:00:00.000' and '23/05/2009 10:30:00.000'
...