07. november 2007 - 11:49Der er
4 kommentarer og 1 løsning
Sammenligning af datoer i DB2
Hej alle
Jeg arbejder med en DB2 database som har følgende felter:
DATO1, TID1, DATO2, TID2
Jeg skal lave en forespørgsel der sammenligner DATO1+TID1 med DATO2+TID2 og hvis DATO1+TID1 er mindst skal den returnere 1, ellers 0.
Jeg har søgt på google og fundet frem til (hvis jeg ikke er helt galt på den) at det ikke umiddelbart er muligt at samle DATO1 og TID1 til et TIMESTAMP, og for det andet at det ikke er den bedste idé at sammenligne 2 timestamps da det ikke vil være præcist, men et ca. gæt.
Derfor har jeg forsøgt mig med at sammenligne DATO og TID hver for sig, men det giver ikke det ønskede resultat:
SUM( CASE WHEN DATO1<DATO2 THEN 0 WHEN DATO1=DATO2 THEN CASE WHEN TID1<=TID2 THEN 0 ELSE 1 END ELSE 1 END) AS FELTNAVN
Håber i kan hjælpe mig, er ved at have stirret mig blind på koden :-)
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
Hej bauerdata, jo SUM skal med, det fik jeg vist ikke forklaret godt nok i spørgsmålet. Fandt ud af at min formel faktisk virkede fint nok, men at jeg havde glemt en CASE statement som efterfølgende gjorde at resultatet blev korrekt.
Bortset fra det, kan du forklare mig hvordan man laver 2 felter af datatype DATE og TIME til et TIMESTAMP, hvis muligt?
Synes godt om
Slettet bruger
08. november 2007 - 06:19#4
Læste selv problemet, ovenstående CASE manglede lige lidt ekstra før resultatet blev som forventet.
Ved ikke om det virker i din kontekst, men prøv det her :-) select timestamp( char(DATO1) ||' '|| char(time1) ) from xxxx
Synes godt om
Ny brugerNybegynder
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.