31. oktober 2007 - 20:10Der er
18 kommentarer og 1 løsning
Alt ude i fremtiden
Har feltet, dato_fra som er et felt i en access database (gemt som dato/klokke felt i formatet DD-MM-YYYY, jeg skal så lave en script der tager alle poster ud, hvor dato_fra er = dags dato eller ude i fremtiden
Har bl.a. forsøgt med følgende, men jeg får også fra "fortiden" strSQL = "Select * From projekter_medarbejdere where ref_medarb = " & Request.QueryString("id") & " and dato_fra >= " & dateadd("d",-1,date()) & " order by dato_fra asc "
Function DateToDB(ByVal sdate) Dim sout sout = "NULL" If Not isNull(sdate) Then If isDate(sdate) Then sout = "'" & Year(sdate) & "-" & Month(sdate) & "-" & Day(sdate) & " " If Hour(sdate) > 0 Or Minute(sdate) > 0 Then sout = sout & " " & Hour(sdate) & ":" & Minute(sdate) & ":00" End If sout = sout & "'" End If End If DateToDB = sou
mener du at jeg skal lave formatet der bliver indsat i databasen om til ååå-mm-dd, for så er det desværre ikke muligt, da jeg skal lave lidt for meget om så...
Men forstår jeg dig ret, kan jeg bruge den funktion du har som kommentar nr 2, men hvordan skal den sættes ind?
funktionen laver en dato om til amerikansk format (sql format), men du skal ikke lave meget om....
problemet er (nok) at databasen tager fejl af måned og dag, f.eks 01-12-2001, kan blive til 12 januar 2001..., hvis formatet er år-måned-dag er der aldrig problemer (man ser det tit nå man flytter det fra sin egen (danske) til en server der kører engelsk)
NB; kan lige se at jeg havde "glemt" noget af funktionen her er den OK
Function DateToDB(ByVal sdate) Dim sout sout = "NULL" If Not isNull(sdate) Then If isDate(sdate) Then sout = "'" & Year(sdate) & "-" & Month(sdate) & "-" & Day(sdate) & " " If Hour(sdate) > 0 Or Minute(sdate) > 0 Then sout = sout & " " & Hour(sdate) & ":" & Minute(sdate) & ":00" End If sout = sout & "'" End If End If DateToDB = sout End Function strSQL = "Select * From projekter_medarbejdere where ref_medarb = " & Request.QueryString("id") & " and dato_fra >= " & DateToDB(dateadd("d",-1,date())) & " order by dato_fra asc "
NBBB, at min funktion "selv" sætter ' ind, hvis du prøver at lave DateToDB("idag er det fredag") vil den returnere NULL, ellers en dato (og tid) f.eks. '2007-10-31' begge kan sættes ind i DB
BTW, hvis det er en "gammel" computer du bruger (der ikke er opdateret), så skal du måske lave funtionen om til:
Function DateToDB(ByVal sdate) Dim sout sout = "NULL" If Not isNull(sdate) Then If isDate(sdate) Then sout = "#" & Year(sdate) & "-" & Month(sdate) & "-" & Day(sdate) & " " If Hour(sdate) > 0 Or Minute(sdate) > 0 Then sout = sout & " " & Hour(sdate) & ":" & Minute(sdate) & ":00" End If sout = sout & "#" End If End If DateToDB = sout End Function
...gammel access/ado vil have datoer som f.eks.: #2007-10-31#
sql: Select * From projekter_medarbejdere where ref_medarb = 86 and dato_fra >= #2007-10-31 #
jeg rettede din funktion til den nye udgave (til gamle computere) - Nu får jeg ingen fejl, men jeg får heller ikke nogle data ud, selvom der er poster der passer på mine kriterier
hmm, du har også et mellemrum efter 31, du bruger IKKE timer og minuter??
prøv denne
Function DateToDB(ByVal sdate) Dim sout sout = "NULL" If Not isNull(sdate) Then If isDate(sdate) Then sout = "#" & Year(sdate) & "-" & Month(sdate) & "-" & Day(sdate) sout = sout & "#" End If End If DateToDB = sout End Function
Function DateToDB(ByVal sdate) Dim sout sout = "NULL" If Not isNull(sdate) Then If isDate(sdate) Then sout = "'" & Year(sdate) & "-" & Month(sdate) & "-" & Day(sdate) sout = sout & "'" End If End If DateToDB = sout End Function
Jeg kunne ikke få nogle af overstående til at virke, min det virker fint sådan her:
dag = day(date) if dag <= 9 then dag = "0" & dag end if dato = year(date) & "-" & month(date) & "-" & dag strSQL = "Select * From projekter_medarbejdere where ref_medarb = " & Request.QueryString("id") & " and Cdate(dato_fra) >= #" & dato & "# order by dato_fra asc "
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.