12. februar 2002 - 23:53Der er
7 kommentarer og 1 løsning
datediff
Jeg har en tabel over brugere af et system. I denne tabel er der en kolonne hvori der staar brugernes foedselsdato. Den er erklaeret som smalldate. Dette kunne f.eks. vaere 01-01-1970. Jeg vil nu gerne vide hvor lang tid der er til at denne person har foedselsdag. Jeg har kigget lidt omkring og kommet frem til denne SQL saetning:
select DateDiff(day, GetDate(), DateAdd(year,DateDiff(year, Birthday, GetDate()),Birthday)) from users
Problemet er at der er nogen der har negativ dage til de har foedselsdag, andre har positive. Jeg soeger en af to loesninger, begge kun vha SQL:
Enten vil jeg gerne have de antal dage der er til alle mine brugeres foedselsdage. Kan det ikke lade sig goere vil jeg gerne have sorteret de brugere fra hvor dagene er negative(de har allerede haft foedselsdag i aar). Dette mener jeg burde kunne goeres saaledes:
select DateDiff(day, GetDate(), DateAdd(year,DateDiff(year, Birthday, GetDate()),Birthday)) daydiff from users where daydiff>=0
Goer jeg imidlertid det, faar jeg en fejl. Den siger at daydiff ikke eksisterer. Hvad goer jeg forkert, eller endnu bedre, hvordan laver man den foerste loesning
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Du kan ikke bruge felt-alias (daydiff) i en where. Du skal bruge hele det oprindelige udtryk DateDiff(day, GetDate(), DateAdd(year,DateDiff(year, Birthday, GetDate()),Birthday))
Eller også skal du sørge for at dem, der har haft fødselsdag i år får lagt et ekstra år til så du ikke får de negative datoer. Og hvorfor skal de personer, der har haft fødselsdag i år snydes????
men nolle har ret... Det var egentlig den loesning jeg ALLER helst vil have, men jeg kan ikke lige se SQL loesningen til den faetter, hvis man kun skal have een SQL saetning.
benny.tordrup: Jeg vil lige proeve det andet. Er det saadanne med alle felt alias? Altsaa at man ikke kan bruge dem i where saetningen?
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.