Avatar billede funstuff.dk Nybegynder
09. september 2001 - 00:40 Der er 19 kommentarer og
3 løsninger

Dato i sql sætning..

Hej..

Skal lave et udtræk hvor den skal udtrække alle de poster hvor datoen er den samme som den den er i dag...

altså noget med felt = dato...

Men den vil ik helt som jeg vil..

Så hvordan gør man det...=
Avatar billede dna Nybegynder
09. september 2001 - 00:42 #1
sql = \"Select * from tabel where dato = \" & date()
Avatar billede dna Nybegynder
09. september 2001 - 00:44 #2
eller måske:

tid = date()
sql = \"select * from tabel where dato = \'\"&tid&\"\'\"
Avatar billede funstuff.dk Nybegynder
09. september 2001 - 00:45 #3
Det virker ik rigtig..
Avatar billede jiggypoof Nybegynder
09. september 2001 - 00:48 #4
Du skal jo huske at datoen i db\'en skal være samme format som date()
Avatar billede funstuff.dk Nybegynder
09. september 2001 - 00:52 #5
det er et datofelt..
Avatar billede jiggypoof Nybegynder
09. september 2001 - 00:54 #6
så skulle
tid = date()
sql = \"select * from tabel where dato = \'\"&tid&\"\'\"
da virke
Avatar billede carpediem Nybegynder
09. september 2001 - 01:00 #7
Hvis det er en Access database skal du gøre således:
sql = \"SELECT * FROM Tabel WHERE Dato =#\" & Date() & \"#\"

Hvis det er MS Sql Server vil jeg råde dig til at gøre således:
sql = \"SELECT * FROM Tabel WHERE Dato = GetDate()\"
Avatar billede jiggypoof Nybegynder
09. september 2001 - 01:02 #8
carpediem why =#\" & Date() & \"#\"
?
Avatar billede dna Nybegynder
09. september 2001 - 01:43 #9
carpe.. ikke nødvendigt da..
Avatar billede horsmark Nybegynder
09. september 2001 - 01:47 #10
acces:
strDato = Date
SQL = \"SELECT myDate FROM tblTest WHERE myDate = #\" & strDato & \"#\"
Her har jeg opsat kolonnen myDate i formatet dd-mm-åå
Avatar billede horsmark Nybegynder
09. september 2001 - 01:50 #11
Husk på at standartdatoformatet i acces er dd-mm-åå tt:mm:ss når du vælger typen \"Dato og klokkeslæt\"

Avatar billede eagleeye Praktikant
09. september 2001 - 12:36 #12
Jeg har en gang haf et problem med Date() i sql strengen. I min database har jeg et felt som hedder dato og den sætter jeg til eks.vis 24-09-2001.

Det er mulig date er kan formateres til at blive ritig men det har jeg ikke lige prøver. Jeg lavede en streng som indeholder dato\'en idag:
datostr = month(date()) & \"-\" & day(date()) & \"-\" & year(date())
Jeg har fundet ud af at det skal mm-dd-yyyy selv om det i databasen er gemt som dd-mm-yyyy.

SQL = \"SELECT * FROM tableen WHERE Dato = #\" & datostr & \"#\"
Avatar billede funstuff.dk Nybegynder
09. september 2001 - 12:40 #13
Ok, takker
Avatar billede carpediem Nybegynder
09. september 2001 - 16:52 #14
Horsmark>> Hej Jesper. Hvorfor vil du bruge ressourcer på at lave en variabel først?
Avatar billede horsmark Nybegynder
09. september 2001 - 17:14 #15
ressourcer?? *G* Her taler vi MEGET få ressourcer, men hvis han skal bruge datoen igen eller manipulere med datoen så er det en RIGTIG god ide at smide det i en variabel OG det er rigtigt godt for gennemskueligheden i koden, hvis nu andre skal se på den.

eks. uden nogen form for variabel

set objRS = conn.execute(\"SELECT tblKunder.RegDato AS KundeDato, tblProdukter.* FROM tblKunder, tblProdukter WHERE (tblKunder.RegDato BETWEEN #\" & request.form(\"datosubmitter\") & \"# AND #\" & DateAdd(\"m\", 2, request.form(\"datosubmiter\")) & \"#) AND tblProdukter.Indkoebsdato < #\" & request.form(\"datosubmitter\") & \"# ORDER BY tblKunder.KundeID\")

hvorfor mon ikke ovenstående virker? *s*

1. at lave option explicit er ALTID en god ide
2. at lave dim´s på det man henviser til mere end én gang
3. at køre ovenstående SQL igen vil kræve at man smider hele pisset ind igen *G*

check lige at
request.form(\"datosubmiter\")) mangler et t i \"datosubmiter\". Jeg spilder gerne lidt \"ressource\" på at undgå sådanne spasserfejl der kan drive én til vanvid, fordi man altid tror fejlen er en eller anden kodefejl mv.

håber du kan følge mig *stort smil* (blev selv lige reddet af option explicit for 5 min. siden i 1500 linier lang kode)

<mvh>Onkel HorsMark</mvh>
Avatar billede carpediem Nybegynder
09. september 2001 - 17:33 #16
Ja ja, mange bække små....
Selvfølgelig er det en god idé at lave en variabel hvis man skal bruge det senere. Men det er der jo ikke tale om lige umiddelbart. Og er der ikke lige så stor sandsynlighed for at du ville skrive strdatosubmitter forkert?
Og din kode ville jeg nok lave mere overskuelig således:

sql = \"SELECT tblKunder.RegDato AS KundeDato\"
sql = sql & \", tblProdukter.*\"
sql = sql & \" FROM\"
sql = sql & \" tblKunder, tblProdukter\"
sql = sql & \" WHERE\"
sql = sql & \" (tblKunder.RegDato BETWEEN #\" & request.form(\"datosubmitter\") & \"#\"
sql = sql & \" AND #\" & DateAdd(\"m\", 2, request.form(\"datosubmitter\")) & \"#)\"
sql = sql & \" AND tblProdukter.Indkoebsdato < #\" & request.form(\"datosubmitter\") & \"#\"
sql = sql & \" ORDER BY\"
sql = sql & \" tblKunder.KundeID\")
set objRS = conn.execute(sql)
Avatar billede carpediem Nybegynder
09. september 2001 - 17:35 #17
Eller muligvis:
sql = \"SELECT tblKunder.RegDato AS KundeDato, tblProdukter.*\"
sql = sql & \" FROM tblKunder, tblProdukter\"
sql = sql & \" WHERE\"
sql = sql & \" (tblKunder.RegDato BETWEEN #\" & request.form(\"datosubmitter\") & \"#\"
sql = sql & \" AND #\" & DateAdd(\"m\", 2, request.form(\"datosubmitter\")) & \"#)\"
sql = sql & \" AND tblProdukter.Indkoebsdato < #\" & request.form(\"datosubmitter\") & \"#\"
sql = sql & \" ORDER BY\"
sql = sql & \" tblKunder.KundeID\")
set objRS = conn.execute(sql)
Avatar billede carpediem Nybegynder
09. september 2001 - 17:36 #18
Får jeg nu en fejl kan jeg blot lave en response.write sql lige inden jeg eksekverer den. Så får jeg den linje fejlen er i og hvad fejlen er.
Avatar billede horsmark Nybegynder
09. september 2001 - 17:39 #19
ja jeg tror vi er enige *S* mit eksempel var MENT til at være uoverskueligt *GG*

jeg ville nok gøre følgende *harhahaha* (tager migselv til hovedet over at vi freaker sådan ud over en så lille bagatel *GGG*

sql = \"SELECT tblKunder.RegDato AS KundeDato, tblProdukter.*\" &_
      \" FROM tblKunder, tblProdukter\" &_
      \" WHERE\" &_
      \" (tblKunder.RegDato BETWEEN #\" & request.form(\"datosubmitter\") & \"#\" &_
      \" AND #\" & DateAdd(\"m\", 2, request.form(\"datosubmitter\")) & \"#)\" &_
      \" AND tblProdukter.Indkoebsdato < #\" & request.form(\"datosubmitter\") & \"#\" &_
      \" ORDER BY\" &_
      \" tblKunder.KundeID\")
set objRS = conn.execute(sql)
Avatar billede horsmark Nybegynder
09. september 2001 - 17:41 #20
og forresten får du ikke den linie fejlen er i hvis der er en SQL fejl så får du KUN fejlen på den linie hvor du eksekverer den *S*

(strækker armen op til en hi-fiver)

og lad os nu stoppe dette tåbelige myreknepperi *G*
Avatar billede carpediem Nybegynder
09. september 2001 - 17:53 #21
Ja, ok ok så stopper vi her. Jeg tror også folk har forstået pointen.
Avatar billede funstuff.dk Nybegynder
09. oktober 2001 - 10:35 #22
:o)
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