07. december 2005 - 13:56Der er
37 kommentarer og 1 løsning
Dato formater
Et lille spørgsmål ang datoer.
I min access database har jeg sat den til at indsætte now() når en post oprettes. Dvs. den gemmer det i access som: DD-MM-YYYY TT:MM:SS
Jeg har så også et datoformat fra en kalender som ser således ud: DD/MM/YYYY
I min kalender skal jeg flette min database ind, det vil sige hvis en dato passer med en post i databasen, skal den udskrive posten i min kalender.
Jeg har gjort således, men der udskrives ikke noget fra databasen. Og går ud fra det er et problem af dato formaterne ikke er helt ens, så spørgsmålet er så hvordan jeg får de 2 datoer til at snakke sammen.
KODEN:
strSkema = "select * from skema where dato = " & usedate & " order by opgave" Set RSskema = conn.Execute(strSkema) While Not RSskema.EOF
Med OS2ai forsøger Aarhus Kommune og OS2-fællesskabet at give offentlige medarbejdere adgang til generativ AI uden at gøre kommunerne mere afhængige af amerikanske techgiganter.
Slettet bruger
07. december 2005 - 14:02#1
Hej
Du bliver nok nød til at omformatere "usedate" i scriptet forinde... Prøv at skrive det her inden scriptet: usedate = Replace(date(usedate), "-", "/")
\Dan
Synes godt om
Slettet bruger
07. december 2005 - 14:05#2
Dette forudsætter selvfølgelig at du har sat "usedate" til datatypen "Dato og klokkeslæt" i den første database...
<% Function weekNr(dtmDate) weekNr = DatePart("ww", dtmDate, vbMonday, vbFirstFourDays) If weekNr > 52 Then If DatePart("ww", int(dtmDate) + 7 , vbMonday, vbFirstFourDays) = 2 Then weekNr = 1 End If End Function
function Weekday2(dtmDate) datenr = 0 if Weekday(dtmDate) = 1 then datenr = 7 else datenr = Weekday(dtmDate)-1 end if Weekday2 = datenr end function
Function WeekStart(ugenr, aar) WeekStart = DateAdd( "ww", ugenr, "01-01-" & aar ) if NOT weekNr(WeekStart) = ugenr then if weekNr(WeekStart) > ugenr then WeekStart = DateAdd( "ww", ugenr-(weekNr(WeekStart)-ugenr), WeekStart) else 'weekNr(WeekStart) < ugenr WeekStart = DateAdd( "ww", ugenr+(weekNr(WeekStart)-ugenr), WeekStart) end if end if
MyWeekday = Weekday2(WeekStart) if NOT MyWeekday = 1 then WeekStart = Dateadd("d",1-MyWeekday,WeekStart) end if End Function
if Request.Querystring("ugenr") & "x" = "x" then myweek = weekNr(Day(Now) & "-" & Month(Now) & "-" & Year(Now)) else myweek = int(Request.Querystring("ugenr")) end if
if Request.Querystring("aar") & "x" = "x" then myYear = Year(Now) else myYear = int(Request.Querystring("aar")) end if
hansdam: det virker perfekt lokalt på min IIS,men på min webserver, så får jeg fejlen Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.
/ole/main1.asp, line 84
83: strSkema = "select * from skema where Left(dato,2) & Mid(dato,4,2) & Mid(dato,7,4) = " & Left(usedate,2) & Mid(usedate,4,2) & Mid(usedate,7,4) & " order by opgave" 84: Set RSskema = conn.Execute(strSkema)
Lad os tage i udgangspunkt i denne her: strSkema = "select * from skema where Left(dato,2) & Mid(dato,4,2) & Mid(dato,7,4) = " & Left(usedate,2) & Mid(usedate,4,2) & Mid(usedate,7,4) & " order by opgave"
Den virker jo fint på min lokal IIS server, hvilket jo bare er IIS på win XP DK.
Nu kommer der i det mindste ikke nogen fejl, MEN der udskrives nu heller ikke noget fra databasen :/
har prøvet at lave en response.write af strengen, og får dette select * from skema where DateValue(dato) = '06/12/2005' order by opgave Så her har vi stadig / og ikke - som der er i databasen. Må være her fejlen ligger ?
Aha, er dér den ligger. Doh! Jeg har bare det engelske format 2057, da siden skal være engelsk. Men så er det vel formatet fra databasen der skal ændres?
For hulden da jeg hader de fucking datoer - er sku en side jeg halter en del på. Nå, men nu har jeg prøvet:
dbDato = Replace(dbDato,"-","/") strSkema = "select * from skema where CDate(DateValue(dbDato(dato))) = '" & CDate(DateValue(usedate)) & "' order by opgave"
ingen fejl, men heller ingen output response.write strSkema siger: select * from skema where DateValue(dato) = #8-12-2005# order by opgave Skal der mon
Nææh,er der heller ikke, sætter jeg datoen til d. 10, så udskriver den ikke min post, mon den på en måde bytter om på dato og måned, altså på en eller anden måde opfatter den 10. som 10. måned?
hmmm du kan jo prøve at bytte dem om, så der står: strSkema = "select * from skema where DateValue(dato) = #" & Month(usedate) & "-" & Day(usedate) & "-" & Year(usedate) & "# order by opgave"
Der var den! Hehe, du har satme gjort en god indsats, du fortjener en dobbelt julegave :) Smider du et svar? Og hvis du gerne vil have lidt flere point for det, såsiger du bare til.
Godt du fik det til at virke :) 1*points er nok for mig :)
Synes godt om
Ny brugerNybegynder
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.