webForumDet fria alternativet

FormatDateTime

ASPur ASP

11 svar · 419 visningar · startad av JaktJanne

JaktJannes avatarJaktJanneMedlem sedan feb. 20001 507 inlägg
Frågan#1

Problem med min tidssummering, när jag kommer över 24 h så börjar så att säja tiden om. Går det att bli ex. 24:23:25 istället för som det blir idag: 00:23:25.

Det jag har idag är enkel kod

total_tid = FormatDateTime(RS("totid"),3)
m_soderlunds avatarm_soderlundMedlem sedan sep. 20026 425 inlägg
#2

Kanske:
<% Dim VisaTid
VisaTid = Replace(FormatDateTime(RS("totid"),3),"00","24")
Response.Write VisaTid %>

JaktJannes avatarJaktJanneMedlem sedan feb. 20001 507 inlägg
#3

Kan ju kanske vara bra men när det ökar över 24 så måste jag gå in och ändra koden :(
Jag har en träningsdagbok där jag summerar tiden så det ökar för varje vecka.
Misstänker att jag får skita i Format DateTime och räkna själv hur många sekunder totalt och på den vägen få fram timmar och minuter enligt vanlig matte, vad tror ni om det ??

JaktJannes avatarJaktJanneMedlem sedan feb. 20001 507 inlägg
#4

Gått i väggen totalt. Går det överhuvudtaget att få som jag vill.

@nderss avatar@ndersMedlem sedan juni 200032 969 inlägg
#5

Det är klart att det går att få som du vill. :)
Vad innehåller rs("totid")?

Man kan ju alltid göra en egen formateringsfunktion, och då får man det precis som man vill. :)

Mvh,

JaktJannes avatarJaktJanneMedlem sedan feb. 20001 507 inlägg
#6

Då tar vi det från början:

total_msql ="select SUM(Total_tid) as totid From Indata as totid"

Set RS=Conn.Execute(total_msql)
total_tid = FormatDateTime(RS("totid"),3)

Nu är värdet i totid = 1,01626157407407 och Total_tid blir då 00:23:25 och jag vill ha 24:23:25

:(

LarsGMedlem sedan dec. 200012 464 inlägg
#7

Vad är total_tid för datatyp?

Jag tror nog att du får använda en integer och lagra sekunder och sedan räkna ut timmar/minuter/sekunder.

Egentligen skulle du ha behövt den intervalldatatyp som finns i SQL men som bara ett fåtal DBMS har implementerat.

JaktJannes avatarJaktJanneMedlem sedan feb. 20001 507 inlägg
#8

total_tid = Datum/Tid i Långt tidsformat

LarsGMedlem sedan dec. 200012 464 inlägg
#9
q = "select sum(datediff('s',year(total_tid)&'-'&month(total_tid)&'-'&day(total_tid)&" &_
"' 00:00:00',total_tid)) as total_id from indata"

set rs = connect.execute(q)

response.write rs(0)\3600 & ":" & right("0" & rs(0)\60,2) & ":" & right("0" & rs(0) mod 3600,2)

Vilken DBMS pratar vi? Ovanstående är Jet SQLiska.

Vidhåller att det är bättre att lagra som sekunder i en integerkolumn.

JaktJannes avatarJaktJanneMedlem sedan feb. 20001 507 inlägg
#10

DBMS ? Menar du Access eller ...

Din kod funkar nästan, bara lite galet.
Total_id = 87805, den använder du inte, måste den vara med ?
Resultatet blir 24:63:05, kommer med lite för mycket, närmare bestämt 40 minuter men saknas 20 sekunder.
Jaag blir inte klok på detta ??? :q x(

LarsGMedlem sedan dec. 200012 464 inlägg
#11

Jo, access eller så ..

så här då

response.write rs(0)\3600 & ":" & right("0" & rs(0)\60 mod 60 ,2) & ":" & right("0" & rs(0) mod 60,2)

Ja, det är sant. Det går lika bra med rs(0) som rs("total_id")

JaktJannes avatarJaktJanneMedlem sedan feb. 20001 507 inlägg
#12

Nu ser det betydligt bättre ut :e

Tackar å bugar

138 ms totalt · 3 externa anrop · v20260731065814-full.58439ac5
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)