Avatar billede maximus25 Nybegynder
17. september 2002 - 09:47 Der er 12 kommentarer og
1 løsning

Helt sort ved sortering med Date()

Hejsa jeg har lavet en simpel sql sætning som virker ok umiddelbart. Formålet er at jeg ahr en nyhedsside hvor jeg gerne vil ahve at de nyheder der er ældre end 14 dage til at blive arkiveret. Det virker på sin hvis også fint....men

Først en lille stump kode.
SELECT *  FROM bbdnyt  WHERE dato <= #" & Date()-14 & "# ORDER BY dato desc

Det er denne der vælger at ligge nyhederne i arkivet hvis de er mere en d 14 dage gamle.

Problemet er at hvis jeg ændrer tallet 14 til (o,1,2,3,4) så virker det ok.
Hvis tallet er mellem 5-7 bliver ingen lagt i arkivet....hvis tallet er 8 virker det ok.
hvis tallet er 10-15 bliver ingen nyheder lagt i arkivet.

Hvad kan der være galt?
Avatar billede misbruger Nybegynder
17. september 2002 - 09:54 #1
SELECT *  FROM bbdnyt WHERE dato <= #" & DateAdd("d", -14, Date() & "# ORDER BY dato desc
Avatar billede maximus25 Nybegynder
17. september 2002 - 10:02 #2
den stump kode som du foreslår virker præcis som min egen.....Jeg har en mistanke om at det er andet end koden der er galt...nogen forslag ??
Avatar billede stoffer Nybegynder
17. september 2002 - 10:02 #3
jeg ville nu hellere bruge

SELECT *  FROM bbdnyt WHERE DATEDIFF(DD,dato,GetDate()) => 14 ORDER BY dato desc
Avatar billede stoffer Nybegynder
17. september 2002 - 10:03 #4
måske skal det være et < tegn i stedet
Avatar billede medions Nybegynder
17. september 2002 - 10:13 #5
Hvorfor ikke sige:
SELECT TOP 14 FROM bbdnyt ORDER BY dato

//>Rune
Avatar billede misbruger Nybegynder
17. september 2002 - 10:16 #6
Hvilken db benytter du?
Hvilket format har datoerne i din db?
Hvilken datatype er din colonne i din db?
Avatar billede maximus25 Nybegynder
17. september 2002 - 10:22 #7
jeg benytter en access db. Jeg har både prøvet med "dato & klokkeslet" format" og "tekst" format.
Avatar billede stoffer Nybegynder
17. september 2002 - 10:25 #8
--> Rune
den vil jo bare tage de 14 nyeste, ikke nødvendigvis dem der er 14 dage gamle...

Din sætning skal iøvrigt være: SELECT TOP 14 *  FROM bbdnyt ORDER BY dato desc

for at den virker
Avatar billede maximus25 Nybegynder
17. september 2002 - 12:46 #9
øv det virker stadig ikke.......
Avatar billede misbruger Nybegynder
17. september 2002 - 13:03 #10
Så fremt din kolonne er datatime, hvilken format ligger det så i ?
Avatar billede maximus25 Nybegynder
17. september 2002 - 13:07 #11
jeg sætter ikke noget format i db. Jeg bruger dodate
Avatar billede eagleeye Praktikant
29. september 2002 - 21:03 #12
Husk på at SQL benytter UK format for dato altså mm-dd-yyyy og ikke dd-mm-yyyy, jeg er dog kommet til hvis man bruger datoformatet yyyy-mm-dd via SQL så giver det ingen problemmer. Så hvis du har defineret det som Dato/klokkeslet i databasen så prøv dette kode:


strDato = DateAdd("d",-14,date)
strDato = Year(strDato) & "-" & Month(strDato) & "-" & Day(strDato)

sql = "SELECT *  FROM bbdnyt  WHERE dato <= #" & strDato & "# ORDER BY
dato desc"
Avatar billede maximus25 Nybegynder
30. september 2002 - 19:09 #13
yes det hjalp "eagleeye"...tak til alle jer andre for jeres tid.
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
Kurser inden for grundlæggende programmering

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