declare @fail_time datetime,
@fail_test varchar(30), @ssn varchar(30)
begin set @ssn='WS04038456'IF exists (select ssn from testrecord(nolock) where ssn=@ssn and status='F' and ssn not in (select ssn from repair(nolock)))
begin
DECLARE mtest CURSOR FOR
SELECT Convert(datetime,testdate,121) from testrecord(nolock) where ssn=@ssn
OPEN mtest
FETCH next FROM mtest into @fail_time
BEGIN
-- select @fail_time=convert(varchar(19),@fail_time,121) --此句不要即可
print @fail_time
END
CLOSE mfautotest
DEALLOCATE mfautotest
end
end
@fail_test varchar(30), @ssn varchar(30)
begin set @ssn='WS04038456'IF exists (select ssn from testrecord(nolock) where ssn=@ssn and status='F' and ssn not in (select ssn from repair(nolock)))
begin
DECLARE mtest CURSOR FOR
SELECT Convert(datetime,testdate,121) from testrecord(nolock) where ssn=@ssn
OPEN mtest
FETCH next FROM mtest into @fail_time
BEGIN
-- select @fail_time=convert(varchar(19),@fail_time,121) --此句不要即可
print @fail_time
END
CLOSE mfautotest
DEALLOCATE mfautotest
end
end
case month(@fail_time) when 2 then ''
@fail_time datetime,
@fail_test varchar(30),
@ssn varchar(30)
begin
set @ssn='WS04038456'
IF exists (select ssn from testrecord(nolock) where ssn=@ssn and status='F' and ssn not in (select ssn from repair(nolock)))
begin
DECLARE mtest CURSOR FOR
SELECT Convert(datetime,testdate,120) from testrecord(nolock) where ssn=@ssn
OPEN mtest
FETCH next FROM mtest into @fail_time
BEGIN
select @fail_time=convert(varchar(19),@fail_time,120)
print @fail_time
END
CLOSE mfautotest
DEALLOCATE mfautotest
end
end
print @fail_time在不同的电脑上执行,显示的结果是不同的.
@fail_time datetime,
@fail_test varchar(30),
@ssn varchar(30)
begin
set @ssn='WS04038456'
IF exists (select ssn from testrecord(nolock) where ssn=@ssn and status='F' and ssn not in (select ssn from repair(nolock)))
begin
DECLARE mtest CURSOR FOR
SELECT Convert(datetime,testdate,121) from testrecord(nolock) where ssn=@ssn
OPEN mtest
FETCH next FROM mtest into @fail_time
print convert(varchar(19),@fail_time,120)
CLOSE mfautotest
DEALLOCATE mfautotest
end
end
所说也是可行的,但可能不是我所需要的,我要的是@fail_time这个应该是varchar,而不是datetime,现我已想到了一个办法,就增加了一个函数@testdate,把它定义成datetime,而@fail_time却定义成varchar,这样我修改过的过程如下:declare
@testdate datetime,
@fail_time varchar(30),
@fail_test varchar(30),
@ssn varchar(30)
begin
set @ssn='WS04038456'
IF exists (select ssn from testrecord(nolock) where ssn=@ssn and status='F' and ssn not in (select ssn from repair(nolock)))
begin
DECLARE mtest CURSOR FOR
SELECT Convert(datetime,testdate,121) from testrecord(nolock) where ssn=@ssn
OPEN mtest
FETCH next FROM mtest into @testdate
select @fail_time=convert(varchar(19),@@testdate,120)
CLOSE mfautotest
DEALLOCATE mfautotest
end
end
上面就是我所需要的
不过我还是要谢谢zjcxc(邹建), txlicenhe(马可) 两位大大