Avatar billede pablo Nybegynder
22. maj 2001 - 10:40 Der er 7 kommentarer og
1 løsning

Variabel > dato i SQL

Jeg har følgende forespørgsel:

SELECT * FROM database WHERE (vardato>=#01-01-1999#);

Jeg kan ikke få det til at fungere med, at en variabel (indeholdende en dato) skal være større eller lig med en anden dato.

Både havelåger og paranteser har jeg prøvet at fjerne, men med samme resultat :(


Avatar billede tdaugaard Nybegynder
22. maj 2001 - 10:43 #1
Er det til mySQL ? (siden du har en ; på enden)
For så skal du skrive:

SELECT * FROM database WHERE (vardato>=\'01-01-1999\');
Avatar billede astalavista Nybegynder
22. maj 2001 - 10:44 #2
øhh jeg er ikke så kvik til de her men skal det ikke være
$vardato

/A
Avatar billede tdaugaard Nybegynder
22. maj 2001 - 10:45 #3
astalavista:> nej det er du ikke ;o) Det er ASP ikke PHP ;-)
Avatar billede astalavista Nybegynder
22. maj 2001 - 10:53 #4
nåå oki,
Og tak for din opbakning, om jeg ikke er så kvik *GGG*.
Tjaaa hvad kunne man forvente nå man selv sagde det.
Avatar billede pablo Nybegynder
22. maj 2001 - 10:53 #5
Nej, det er udviklet til Access 2000, men skal konverteres til SQL Server.

Jeg har allerede prøvet at fjerne havelågerne, og erstatte med \' men desværre uden godt resultat.

Ydermere har jeg dobbelttjekket, at der rent faktisk står en dato i variablen.

Det burde være lige til, men det vil ikke som jeg vil...
Avatar billede sjensen Nybegynder
22. maj 2001 - 13:08 #6
Det er med stor sandsynlighed fordi datoformaterne ikke passer.

Typsik kører SQL serveren med en systembruger som adgangkontrol, og denne brugers miljø (environnement) er formentligt ikke dansk, men US eller UK. Dermed passer datoformatet heller ikke når du validerer den dato i din var med et fast opbygget datoformat som 01-01-1999 er det.

Samtidig er det ikke praktisk at anvende faste datoer (i DK format) hvis hjemmesiden f.eks. skulle vises på en PC med udenlandsk opsætning, som f.eks. en bruger i England eller Tyskland har det.

Det bedste er derfor at konvertere testdatoen \'01-01-1999\' til en date-var af samme format som jeg forventer din \"vardato\" er det, inden selve kaldet. Dermed sammenligner du 2 datoer binært, og det er ligegyldigt hvilket datoformat der er valgt på den pågældende pc.
Avatar billede idiotbarn Nybegynder
22. maj 2001 - 21:26 #7
Jeg har ikke prøvet, men er det ikke:
SQL = \"SELECT * FROM database WHERE date>=01-01-1999\"
Conn.Execute(SQL)
-Brian
Avatar billede idiotbarn Nybegynder
23. maj 2001 - 23:18 #8
I Access skal du bruge # tegnet til at adskille din dato med:

\"SELECT * FROM Booking WHERE bookingdato > #\"& Date &\"#;\"

I MS SQL Server skal du bruge \' i stedet for #

Det her fandt jeg her:
http://www.activeserverpages.dk/brevkassen/default.asp?category=14&question=3
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

Politiets Efterretningstjeneste

Tech Lead til klientområdet i PET

Politiets Efterretningstjeneste

Netværksspecialist til IT i PET

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger IT-supporter til lokal IT Korsør

Politiets Efterretningstjeneste

GenAI-specialist i PET