Avatar billede zetn Nybegynder
05. februar 2006 - 13:16 Der er 7 kommentarer og
2 løsninger

Problemer med array og dato felt

Hej Exp,

jeg har et problem når jeg prøver at lave et array. Den skal tage alle de ordre der ligger mellem to datoer, som er defineret.
Problemet ligger i, at den kun tager ordre hvis den kan finde nogle der har den første dato, ellers et tomt array.

Håber i kan hjælpe.

<%
dim Conn, DNS, strSQL, rs
dim arr
arr = ""


strSQL = "Select * From orders Where Date Between '29-01-2006' and '01-02-2006'"
Set rs = Conn.Execute(strSQL)

Do While Not rs.EOF
  arr = arr & """" & rs("order_id") & ""","
  rs.MoveNext
Loop

Conn.Close
Set Conn = Nothing

arr = left(arr, len(arr) - 1)

response.write arr
%>

På forhånd tak!
Avatar billede eagleeye Praktikant
05. februar 2006 - 13:21 #1
Hvilken database bruger du?

hvilken typer er din dato kolonne?
Avatar billede zetn Nybegynder
05. februar 2006 - 13:22 #2
Bruger access. Kolonnen er af typen text, har også prøvet at konvetere den til dato, men fik samme resultat.
Avatar billede cpufan Juniormester
05. februar 2006 - 13:27 #3
lav kolonnen om til datoformat og så:

strSQL = "Select * From orders Where [Date] Between #29-01-2006# and #01-02-2006#"
Set rs = Conn.Execute(strSQL)

date er et reserveret ord så derfor klammer omkring.
Avatar billede eagleeye Praktikant
05. februar 2006 - 13:28 #4
I første omgang skal kolonne havde [] når den hedder Date da date er en indbygget funktion i access:

strSQL = "Select * From orders Where [Date] Between '29-01-2006' and '01-02-2006'"


Det vil ikke virke med typen text da den sammenligner de to karakter for karetkter og ikke det hele som en dato. Du skal enten lave kolonne til typen date/time og så lave SQL sætnigen om til at # omkring datoen. Hvis typen er af date/time så overfør altid datoer i formatet yyyy-mm-dd.

strSQL = "Select * From orders Where [Date] Between #2006-01-29# and #2006-02-01#"


Hvis du vil beholde text kan du prøve at konverete datoen med Cdate sådan her:
strSQL = "Select * From orders Where CDate([Date]) Between #2006-01-29# and #2006-02-01#"
Avatar billede cpufan Juniormester
05. februar 2006 - 13:30 #5
ja datoerne skal defineres som eagleeye's  yyyy-mm-dd
Avatar billede zetn Nybegynder
05. februar 2006 - 14:14 #6
Hej igen,

Nu ser det vist ud til det virker, dog har jeg stadig dd-mm-yyyy formatet. Er det en nødvendighed at skifte til yyyy-mm-dd, og hvorfor?
Avatar billede cpufan Juniormester
05. februar 2006 - 14:18 #7
01-03-2006 vil blive opfattet som 3.januar

13-03-2006 vil blive opfattet som 13. marts

da det er us-format acces arbejder med,

dette undgåes ved at køre yyyy-mm-dd
Avatar billede zetn Nybegynder
05. februar 2006 - 15:55 #8
Fik det til at virke, mange tak! I kan dele pointne hvis eagle lige smider et svar :)
Avatar billede eagleeye Praktikant
05. februar 2006 - 17:02 #9
super her et svar ;)
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