仅更新sql server 2000中datetime的日期部分

时间:2010-06-01 13:10:02

标签: sql-server sql-server-2000

我在表格中有如下数据。

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 

我的要求是什么?我希望在不打扰时间的情况下更新具有单个日期的列的日期。比方说,我想用6/1/2010更新表数据,其中字段数据不为空。请让我知道更新表数据的查询。

谢谢&的问候,

穆拉利

2 个答案:

答案 0 :(得分:6)

我认为这应该适合你。

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

答案 1 :(得分:0)

您可能需要通过SELECT语句执行此操作,因为每次将新数据添加到表时都不需要运行UPDATE语句