我在找更新SOLUTION_ID
,其中CREATED_DATE
大于或等于给定日期。更新值日期
我到目前为止是更新表中的所有记录。 CREATED_DATE
有一个smalldatetime
数据类型。
UPDATE [Database].[dbo].[TB__TABLE]
SET SOLUTION_ID = 1
WHERE CAST(CREATED_DATE AS datetime) >= 2011-05-08
非常感谢!
我在找更新SOLUTION_ID
,其中CREATED_DATE
大于或等于给定日期。更新值日期
我到目前为止是更新表中的所有记录。 CREATED_DATE
有一个smalldatetime
数据类型。
UPDATE [Database].[dbo].[TB__TABLE]
SET SOLUTION_ID = 1
WHERE CAST(CREATED_DATE AS datetime) >= 2011-05-08
非常感谢!
你想引用日期;
WHERE CREATED_DATE >= '2011-05-08'
(无引号2011-05-08
被视为一个数学表达式,其值1998)
与SMALLDATETIME铸造柱的是不需要的。请参阅样本
create table #temp
(
dat smalldatetime,
Solution_ID int
)
insert into #temp(dat, Solution_ID)values(1, GETDATE())
insert into #temp(dat, Solution_ID)values(2, GETDATE()+1)
insert into #temp(dat, Solution_ID)values(3, GETDATE()+2)
select * from #temp
where dat >= 'Your date'
Update #temp
Set Solution_ID = 4
Where dat >= 'Your date'
UPDATE [Database].[dbo].[TB__TABLE]
SET SOLUTION_ID = 1
WHERE CAST(CREATED_DATE AS datetime) >= '2011-05-08'
无需投在所有的下面。
正如你在2011期待您的查询也不会精确地工作 - 5 - 8 = 1998年其在SQL Server是22/6/1905 ...
>= '2011-05-08'
使用DateDiff函数
DATEDIFF(dd, @GIVEN_DATE, CREATED_DATE) >= 0
这将返回与给定日期和创建日期相差的天数。当函数返回零或更大时,则created_date大于给定日期。无需铸造。
UPDATE [Database].[dbo].[TB__TABLE]
SET SOLUTION_ID = 1
WHERE DATEDIFF(dd, @GIVEN_DATE, CREATED_DATE) >= 0