Avatar billede Slettet bruger
23. november 2007 - 01:00 Der er 6 kommentarer og
1 løsning

datediff i sql

Hejsa

Jeg tror jeg er ved at blive gammel... Jeg kan ikke huske hvordan det er vi sætter en datediff i en sql-sætning... Jeg mener jeg har gjort det før...

- Men er der nogen der kan se fejlen her?
set rs = conn.execute("select * from kalender where (datediff("d",fdato,showdag & "-" & showmaaned & "-" & aar)=>0 and datediff("d",tdato,showdag & "-" & showmaaned & "-" & aar)<=0)")

Den kommer med denne her fejl:
Microsoft VBScript compilation error '800a03ee'

Expected ')'

/test/forsiden/source/kalender.asp, line 120

set rs = conn.execute("select * from kalender where (datediff("d",fdato,showdag & "-" & showmaaned & "-" & aar)=>0 and datediff("d",tdato,showdag & "-" & showmaaned & "-" & aar)<=0)")
---------------------------------------------------------------^


\Dan
Avatar billede softspot Forsker
23. november 2007 - 01:14 #1
Det er sikkert fordi du bruger anførselstegn i SQL-strengen, det vil givetvis resultere i en syntaksfejl. Prøv med apostroffer i stedet:

set rs = conn.execute("select * from kalender where (datediff('d',fdato,showdag & '-' & showmaaned & '-' & aar)=>0 and datediff('d',tdato,showdag & '-' & showmaaned & '-' & aar)<=0)")
Avatar billede kalp Novice
23. november 2007 - 08:33 #2
det er sikkert mysql, men hvis den tænker lidt ligesom mssql så behøver du intet rundt om d'et:)
Avatar billede Slettet bruger
23. november 2007 - 09:05 #3
- det er en Access database jeg har med at gøre...

\Dan
Avatar billede softspot Forsker
23. november 2007 - 13:39 #4
Hvor kommer showdag og showmaaned og aar fra? Er det felter i databasen, eller er det variabler i din ASP-kode? Hvis det er variable i din ASP-kode, så skal SQL-sætningen se lidt anderledes ud:


set rs = conn.execute("select * from kalender where (datediff('d',fdato,#" & showdag & "-" & showmaaned & "-" & aar & "#)=>0 and datediff('d',tdato,#" & showdag & "-" & showmaaned & "-" & aar & "#)<=0)")
Avatar billede Slettet bruger
23. november 2007 - 22:05 #5
Hej softspot

- mange tak for hjælpen indtil nu - men der er stadig problemer... nu får jeg denne her fejl:

Microsoft JET Database Engine error '80040e14'
Syntax error (missing operator) in query expression '(datediff('d',fdato,01-11-2007)=>0 and datediff('d',tdato,01-11-2007)<=0)'.

/test/forsiden/source/kalender.asp, line 121

fdato er en kollonne i databasen og det er tdato også

showdag, showmaaned og aar er alle variabler som tilsammen giver en dato...

\Dan
Avatar billede Slettet bruger
25. november 2007 - 01:03 #6
Hej igen

- Nu har jeg så arbejdet en del med denne her sql - og det virker som sådan... i hvert fald med datediff - og så ikke alligevel...

Den ser nu sådan her ud:
set rs = conn.execute("select * from kalender where ((datediff('d',fdato,#" & showdag & "-" & showmaaned & "-" & aar & "#)>0 or datediff('d',fdato,#" & showdag & "-" & showmaaned & "-" & aar & "#)=0) and (datediff('d',tdato,#" & showdag & "-" & showmaaned & "-" & aar & "#)=0 or datediff('d',tdato,#" & showdag & "-" & showmaaned & "-" & aar & "#)<0))")

- Men til min store forskrækkelse så kan den ikke styre det hvis at datoen (fdato eller tdato) i databasen er før den tiende i en pågældende måned eller at pågældende måned kun har et ciffer... altså til og med september...

- Så vidt jeg husker så har det noget at gøre med at det er det amerikanske datoformat som spiller ind her... Hvordan er det nu lige vi får rettet op på dette? Jeg har prøvet med session.LCID og det virker ikke...

\Dan
Avatar billede Slettet bruger
18. januar 2008 - 00:40 #7
nu lukker jeg denne her...

skriv hvis du bliver stødt over det med pointene - så finder vi en løsning...

\Dan
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