我在找更新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