Avatar billede montago Praktikant
22. januar 2004 - 22:32 Der er 27 kommentarer og
1 løsning

SQL sætning med datoforskel

jeg har nogle søjler...

den ene hedder FOLDER den anden hedder DATO
dato indeholder : date()
dvs. mm-dd-yyy
Folder åbnes rigtig nok... som set her:

SQL = "Select * FROM posts where Folder =" & "'" & "/" & Folder.Name & "'"

jeg vil gerne have endnu en WHERE ind i sql'en hvis det er muligt... kan ikke huske om det er...
Denne skal tage de Datoer fra DATO, som er nyere end: date - session("datoforskel")

session("datoforskel") indeholder et heltal. fx 5 (dage)

hvordan gør jeg ?
Avatar billede eagleeye Praktikant
22. januar 2004 - 22:43 #1
Prøv:

L = "Select * FROM posts where Folder =" & "'" & "/" & Folder.Name & "' and dateadd('d'," & session("datoforskel")&",DATO) >= Date() "
Avatar billede montago Praktikant
22. januar 2004 - 23:04 #2
Microsoft OLE DB Provider for ODBC Drivers error '80040e10'
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

/Upload/index.asp, line 454
Avatar billede eagleeye Praktikant
22. januar 2004 - 23:06 #3
hedder din kolonne ikke dato?
Avatar billede montago Praktikant
22. januar 2004 - 23:08 #4
ahh...
Avatar billede montago Praktikant
22. januar 2004 - 23:11 #5
jeg havde lavet navnet om så du kunne læse det... den hed ikke DATO... men date...

det virker 100% nu... takker !!... lav et gubbi-svar så du kan skovle dine 30 point ind :-)
Avatar billede eagleeye Praktikant
22. januar 2004 - 23:12 #6
arh ok :)
her et gubbi svar..
Avatar billede montago Praktikant
22. januar 2004 - 23:35 #7
er du sikker på at det skal være dateAdd ???...

nu jeg tjekker med datoerne... passer tallene jeg får ud ikke med det reelle antal...
Avatar billede montago Praktikant
22. januar 2004 - 23:38 #8
ahh... selvfølgelig... hvis datoen i recorden er fx. 20-januar, og vi har den 23... er datoen i recorden 5 + 20. som er større end 23... på den måde.

men det løser jo ikke problemet med at antallet af records ikke stemmer overens med de reelle posts...
Avatar billede eagleeye Praktikant
22. januar 2004 - 23:41 #9
Den skulle ikke kunne tage flere med end den skal??

Hvis du siger din kolonne hedder date, så prøv at sætte [] hvis der ikke er det på:

SQL = "Select * FROM posts where Folder =" & "'" & "/" & Folder.Name & "' and dateadd('d'," & session("datoforskel")&",[date]) >= Date() "
Avatar billede montago Praktikant
22. januar 2004 - 23:41 #10
jeg bruger følgende metode til at tælle med...


Set Conn = Server.CreateObject("ADODB.Connection")
        Conn.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("..\..\db\Upload.mdb")
        Set RS = Server.CreateObject("ADODB.Recordset")
        SQL = "Select * FROM posts where Folder ='" & "/" & Folder.Name & "' and dateadd('d'," & session("OldNess")&",Date) >= Date() "
        RS.Open SQL, Conn, 3, 3
       
        if not RS.EOF then
        NumRecords = RS.RecordCount
       
        end if
Avatar billede eagleeye Praktikant
22. januar 2004 - 23:43 #11
Den tager nok Date funktionen dato og ikke kolonnen dato når man skriver Date uden [] omkring. Date er reserveret ord i SQL og er en funtion som returnere dags dato. Så vil idag+5 altid være større end idag ;)
Avatar billede montago Praktikant
22. januar 2004 - 23:47 #12
æv... men kan jeg så skrive [date] ? i stedet i sql'en
Avatar billede montago Praktikant
22. januar 2004 - 23:48 #13
hvis ikke ..må jeg ændre databasen + min index side ;-)
Avatar billede eagleeye Praktikant
22. januar 2004 - 23:49 #14
Ja sådan her:

SQL = "Select * FROM posts where Folder =" & "'" & "/" & Folder.Name & "' and dateadd('d'," & session("datoforskel")&",[date]) >= Date() "
Avatar billede montago Praktikant
22. januar 2004 - 23:53 #15
nope...
Avatar billede musicchart.dk Nybegynder
22. januar 2004 - 23:54 #16
Undskyld spam - ville bare ønske eagleeye tilykke med de store 200 ;-) God klaret!
Avatar billede eagleeye Praktikant
22. januar 2004 - 23:58 #17
Mange tak :-O


montago>> Hvad giver den som tal og hvad skulle den give for normalt virker det altså at sætte [] omkring.
Avatar billede montago Praktikant
23. januar 2004 - 00:01 #18
kan jeg ikke bare bruge
BETWEEN Date - Session("DatoForskel") AND Date()
Avatar billede montago Praktikant
23. januar 2004 - 00:05 #19
[] virkede ikke...

fx... den siger i mange tilfælde at der er 1 "new" eller 3 "new"

hvor den istedet skulle vise 0..
du kan på denne side ændre datoforskellen i settings og se dem på forsiden (Main) http://www.mdk-photo.com/underground
Avatar billede eagleeye Praktikant
23. januar 2004 - 00:08 #20
Jo det kan du også bruge

SQL = "Select * FROM posts where Folder =" & "'" & "/" & Folder.Name & "' and [date] between Date() - " & session("datoforskel") & AND Date()"
Avatar billede montago Praktikant
23. januar 2004 - 00:14 #21
satte et manglende tegn ind "
SQL = "Select * FROM posts where Folder =" & "'" & "/" & Folder.Name & "' and [Date] between Date() - " & session("datoforskel") & "AND Date()"


[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'Folder ='/--Change-Game-Music--' and [date] between Date() - AND Date()'.
Avatar billede eagleeye Praktikant
23. januar 2004 - 00:17 #22
Ok så er session("datoforskel") tom
Avatar billede montago Praktikant
23. januar 2004 - 00:19 #23
jeg gemmer jo tallet i en variabel... NumRecords

men jeg har ikke sat den til 0, efter at være brugt... kan de være fejlen ?
Avatar billede eagleeye Praktikant
23. januar 2004 - 00:21 #24
Ja giver forkert antal så hvis den ikke trække de rigtige fra..

Når du ligger noget i databasen hvilket datoformat bruger du så??
og er kolonnen date af text eller Date/Time?
Avatar billede montago Praktikant
23. januar 2004 - 00:23 #25
hehe... undskyld at jeg er kvaj...

hehe... det virker nu... og i hele 2 tilfæle !! :-)
Avatar billede montago Praktikant
23. januar 2004 - 00:24 #26
kollonen er date/time med standard værdien date() eller time()
Avatar billede montago Praktikant
23. januar 2004 - 00:28 #27
if not RS.EOF then
    NumRecords = RS.RecordCount
  end if

det var det jeg mente... og efter at være brugt... sættes numrecords til 0
Avatar billede eagleeye Praktikant
23. januar 2004 - 00:32 #28
ok, men det er rigtigt nu??
men jeg smutter for i aften.
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

IT-JOB