обновление только части даты от datetime в sql server 2000 - PullRequest
2 голосов
/ 01 июня 2010

У меня есть данные в таблице, как показано ниже.

col1                   col2                   col3
--------------------------------------------------------
6/5/2010 18:05:00   6/2/2010 10:05:00         Null
6/8/2010 15:05:00   6/3/2010 10:45:00       6/5/2010 11:05:00 
6/3/2010 15:05:00   Null                    6/7/2010 12:05:00 
6/1/2010 15:05:00   6/3/2010 10:45:00       6/1/2010 14:05:00 

что мне нужно, я хочу обновить дату столбцов с одной датой, не нарушая время. скажем, например, я хочу обновить данные таблицы с 01.06.2010, где данные поля не равны нулю. пожалуйста, дайте мне знать запрос на обновление данных таблицы.

спасибо и привет,

Мурали

Ответы [ 2 ]

6 голосов
/ 01 июня 2010

Я думаю, это должно сработать для вас.

create table #t
(
col1 datetime
)

Insert Into #t 
values ('2010-06-01 10:00:00')

Insert Into #t 
values ('2010-06-06 11:00:00')

Insert Into #t 
values ('2010-05-24 12:40:00')

Insert Into #t 
values ('2010-05-07 13:00:00')

Insert Into #t 
values (Null)

declare @newDate datetime

set @newDate = '2010-07-01'

update #t
Set col1 = DateAdd(day, DateDiff(day, col1, @newDate), Col1)
Where Col1 is not null


select * From #t

drop table #t
0 голосов
/ 04 июня 2010

Возможно, вам придется сделать это с помощью оператора SELECT, поскольку вам не нужно запускать оператор UPDATE каждый раз, когда новые данные добавляются в таблицу

...