Avatar billede PeterSchwennesen Nybegynder
15. februar 2010 - 11:06 Der er 3 kommentarer

GetDate() brugt in loop i Query

Jeg vil gerne have getdata() funktionen til at returnere en ny tid hver gang jeg kalder den i et loop i en SQL query. men fælgende giver hele tiden den samme tid.

declare @StopTime as datetime set @StopTime = dateadd(ss,1,GETDATE())
while @StopTime > GETDATE()
begin
    select @StopTime, GETDATE()
end

Hvad kan jeg gøre for at få GetData() funktionen til at returnere en ny dato tid hver gang jeg kalder den? Eller hvad kan jeg ellers gøre?

Peter
Avatar billede janus_007 Nybegynder
15. februar 2010 - 19:13 #1
Så bliver du nødt til at returnere den fra en sproc ala

create procedure dbo.spGetDate
as
begin
  return getdate()
end


Og så i dit loop:

declare @dt datetime
....
exec @dt = dbo.spGetDate

Men hvad katten vil du dog med det loop?
Avatar billede PeterSchwennesen Nybegynder
16. februar 2010 - 18:47 #2
Sikre mig at det kun kører max det antal sec som jeg har defineret, og så stoppe. Men dette er kun en del af koden ... så der er andre ting som også vil stoppe lykken.
Peter
Avatar billede janus_007 Nybegynder
16. februar 2010 - 21:58 #3
Ja altså getdate opfører sig lidt besynderligt, men løkken stopper da fint nok :)

Ellers må du ud i noget alá:


declare @tmp as table(Id int, CurrentTime datetime default getdate())

declare @StopTime as datetime
set @StopTime = dateadd(ss,5,GETDATE())
while @StopTime > GETDATE()
begin
    insert into @tmp(Id) values(1)   
end
select @StopTime, CurrentTime from @tmp
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester