Avatar billede lasseq Nybegynder
10. februar 2004 - 18:43 Der er 8 kommentarer og
1 løsning

SQL til ASP: Hent post ud fra dato-problemer

Hej
Jeg skal hente en post ud fra en database hvor skal være inden for et halvt år. Altså, hvis postens felt "dato" er fx d. 21.12.2001 skal posten ikke vises. Det skal den derimod hvis datoen var d. 21.12.2003, da det er inden for et halvt år fra nu.

Jeg har lavet flg. SQL-sætning:
strSQL = "SELECT * FROM mwForumHovedIndlaeg WHERE datMinusHalvtAar & "< dato ORDER BY dato desc"

Variablen datMinusHalvtAar ser således ud:
'Finder datoen for ½ år tilbage
datMinusHalvtAar = Date() - 180

Men det virker ikke korrekt. Jeg får ganske vidst ikke nogen fejlmeddelelse, men databasen trækker alligevel alle poster ud - nogen der har en løsning?
Avatar billede ellebaek Nybegynder
10. februar 2004 - 18:45 #1
men date()-180 er det ikke det samme som med now()+1 at det er år og ikke dage..

prøv med..

datediff("d",date(),180)
Avatar billede lasseq Nybegynder
10. februar 2004 - 20:15 #2
Har du mulighed for at sætte det ind i scriptet, så kan jeg nok bedre forstå hvad du mener?
Avatar billede eagleeye Praktikant
10. februar 2004 - 20:54 #3
Hvilken type er din kolonne dato?
Avatar billede eagleeye Praktikant
10. februar 2004 - 22:06 #4
hvis du bruger access og det er af type date/time kunne du med fordel bruge de indbyggede funktioner:

strSQL = "SELECT * FROM mwForumHovedIndlaeg WHERE DateAdd('d',-180,Date()) <= dato ORDER BY dato desc"
Avatar billede ellebaek Nybegynder
10. februar 2004 - 22:49 #5
ja, enten som eagle skriver, eller også som:

strSQL = "SELECT * FROM mwForumHovedIndlaeg WHERE datediff("d",date(),180) <= dato ORDER BY dato desc"
Avatar billede meelby Nybegynder
11. februar 2004 - 06:40 #6
Lige en kommentar. Ved søgning af datoer er der 2 vigtige ting som jeg har erfaret:
1) strSQL = "SELECT * FROM mwForumHovedIndlaeg BETWEEN #2003/12/23# AND #2004/02/12#
(altså få datoerne ind i #)

2) strSQL = "SELECT * FROM mwForumHovedIndlaeg WHERE dato >= #2003/12/23#
(Altså sikre dig at du bruger US tidsform #2003/12/23# - hvilket Access og SQL langt bedre håndterer)

Bare et godt råd :)
Avatar billede lasseq Nybegynder
11. februar 2004 - 12:08 #7
Tak for jeres svar alle sammen.
Jeg burde give jer alle nogle  point, men kun ellebaek har postet et svar.
Tak alle sammen :D
Avatar billede lasseq Nybegynder
11. februar 2004 - 12:09 #8
Tak for jeres svar alle sammen.
Jeg burde give jer alle nogle  point, men kun ellebaek har postet et svar.
Tak alle sammen :D
Avatar billede eagleeye Praktikant
11. februar 2004 - 17:49 #9
Jeg beklager fejlen :)
Det helt fint i orden.
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