04. marts 2006 - 15:27Der er
26 kommentarer og 1 løsning
Varibelproblemer - format?
Hej exp.
jeg forsøger mig med et tidsregnestykke, jeg vil trække 2 tidspunkter fra hinanden, de indtastes i en form, jeg får en type mismatch, skal jeg på en eller anden måde angive at der er tale om tid? Af hensyn til min access database ser indtastning f.eks ud som 15:00. Mine variabler ser ud sådan her:
Dim a,b a = Request.Form("start") b = Request.Form("slut") Dim dtimer dtimer = (b - a)
Og så forsøger jeg at indsætte i databasen sådan her :
hvis du skal trække to tidspunkter fra hinanden skal du bruge datediff funktionen. Den kan så kan give timer/minutter/sekunder imellem to klokkeslæt så man må selv regne lidt på det.
Hvad skal du trække fra hinadnen er det klokkeslæt eller datoer?
Hvad skal du havde lagt i databasne og hvilken datatype er kolonnen timer?
Jeg har lige forsøgt at ændre databasen til tal i stedet for dato og klokkeslet og så virker det. Det jeg gerne vil er at intaste et starttidspunt i "start" og et sluttidspunkt i "slut" Så skulle den gerne selv regne tidsforbruget ud. Jeg skal ikke bruge sekunder men timer og minutter. Jeg skal have på start og sluttidspunkt samt tidsforbruget med ind i databasen.
datediff er lidt besværlig for den kan kan give en tidenhed tilbage. Så derfor må man finde den mindste tids enhed man ønsker, i dette tilfælde minutter "n", og så selv regne antal timer og minutter ud fra det totalt antal minutter.
Tak endnu engang eagleeye. Jeg render så ind i et nyt problem, min SQL vil ikke vise det totale rigtigt når jeg anvender tidsformat, kan du hjælpe med denne også? Smid bare et svar !
Min SQL set objRS = objConn.Execute("SELECT SUM(timer) AS sumTimer FROM timer")
Hvis du vil lave en sum ud af det vil jeg foreslå at du generelt bare gemmer dine data som minutter, så kan du lave en sum på det, og så regne det om til TT:MM når du vil udskrive det.
hmm .. jeg skal lige se om jeg kan hitte ud af hvad du gør men umiddelbart ser det ud til at virke, jeg kan ikke helt gennemskue hvad du gør men jeg ser lige på det igen
Ok, men så skal du ikke bruge datediff da den regner med minutter så skulle du bare kunne trække de to tal fra hinanden som du gjorde først for at få forskellen:
Dim a,b a = Request.Form("start") b = Request.Form("slut") Dim dtimer dtimer = (b - a)
Så gemme dtimer i databasen i en tal kolonne som kan acceptere kommatal.
du har ret det er mig der er et fjols, det skulle jo have været 11.75 - 23.25 når det er 1/100 dele .
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.