2015-02-02 3 views
-2

Мне нужна хранимая процедура для сравнения столбца EXPIRYDATE с SYSTEMDATE, и если они совпадают, то дополнительный столбец с именем MATCHSTATUS должен быть обновлен со значением 1 и если они 't match then, это должно быть обновление со значением 0.Создание хранимой процедуры для сравнения Date Column и update Status Column

Оба EXPIRYDATE и MATCHSTATUS присутствуют в той же таблице.

Пример:

username password expirydate matchstatus 
----------------------------------------------------- 
abc  987  01-Feb-2015  1 
xyz  678  10-Feb-2015  0 
ghi  456  15-Jan-2015  0 

В этом примере столбец состояния матч должен быть обновление путем сравнения ExpiryDate колонки SYSDATE, и это должно быть сделано с помощью хранимой процедуры.

+0

Зачем нужна хранимая процедура? – jarlh

+0

так в чем проблема? – Sathya

+0

Вы на самом деле не задали вопрос, вам нужна помощь в запросе? Вам нужна помощь в создании хранимых процедур? Вы хотите, чтобы мнение о том, является ли хранимая процедура правильным методом? Вы просто разговариваете? –

ответ

0

код может быть что-то подобное

Declare @crntdt NVARCHAR(20) 
Declare @mydt NVARCHAR(20) 

Select 
@crntdt = REPLACE(rtrim(ltrim(CONVERT(CHAR(15), getdate(), 106))),' ',' - ') 
--select @crntdt 
select @mydt=expirydate from your_table 

if @[email protected] 
begin 
update your_table set matchstatus=1 where [email protected] 
end 
0

Это то, что вам нужно, я думаю, - это предполагает, что expirtydate является дата, если это VARCHAR вам нужно будет бросить его в качестве даты:

CREATE PROCEDURE sp_name 
as 
Begin 
Update tbl 
set matchstatus = case when expirydate = cast(GETDATE() as date) then 1 else 0 end 
END