vad vill du lite mer specifikt ha hjälp med?
sen vet jag inte om jag skulle lita helt och fullt på statistik som är framslumpad... ;)
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
all your base are belong to us!</A>
17 svar · 656 visningar · startad av Erik Juhlin
Programmeraren Hanns är inte här idag och de har satt mig på att göra ett statistik system. Hanns mailade mig lite tips.
Lägg upp en tabell med endast ett fält av typen datetime, skriv sedan ett program som skapar ett 1000-tal poster i denna tabell på slumpvisa dagar.
Någon som kan hjälpa mig?
Bra avslut på mailet också. :e
P.S. This message will self-destruct in T-5 seconds. Should you be captured by enemy forces, Incordia will deny all knowledge of you.
------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/
[Redigerat av Erik Juhlin den 26 apr 2001]
vad vill du lite mer specifikt ha hjälp med?
sen vet jag inte om jag skulle lita helt och fullt på statistik som är framslumpad... ;)
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
all your base are belong to us!</A>
Hur man slumpar fram 1000 datum. Vill ha in olika datum under år 2001 i StatisticDate i tabellen tblStatistic.
------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/
jag ska se om jag kan hitta någon liten kodsnutt i mina gömmor (eller i min hjärna), men jag hoppas att du inte tänkte dig 1000 olika datum under 2001? ;)
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
all your base are belong to us!</A>
Nej, det behöver inte vara under 2001. Fast det skulle kunna vara det. Är bara bra om vissa datum dyker upp flera gånger. :)
------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/
ok, för det kan vara lite klurigt att få in tusen olika datum under ett år nämligen. :)
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
all your base are belong to us!</A>
Okej, men det ska i alla fall inte vara 1000 lika datum. :)
------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/
här får du en liten kärra som plockar fram 1000 slumpiga datum under 2001.
insertarna till databasen fixar du själv väl?
for i = 1 to 1000
randomize
slump = Int((365 - 1 + 1) * Rnd + 1)
slumpdatum = dateadd("d",slump,"2000-12-31")
Response.Write i & " : " & slumpdatum & "<br>"
next
mvh,
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
all your base are belong to us!</A>
Borde inte det här funka?
rs.AddNew
For i = 1 to 1000
Randomize
slump = Int((365 - 1 + 1) * Rnd + 1)
slumpdatum = dateadd("d",slump,"2000-12-31")
rs("VisitDate") = slumpdatum
Next
rs.Update
rs.Close
rs("VisitDate") = Now funkade i alla fall.
------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/
ggahh! :x
använd riktiga, sql-satser, dvs insert into för att stoppa till data.
For i = 1 to 1000
Randomize
slump = Int((365 - 1 + 1) * Rnd + 1)
slumpdatum = dateadd("d",slump,"2000-12-31")
strSQL = "insert into tblStatistic(StatisticDate) values ('" & slumpdatum & "')"
Conn.execute (strSQL)
Next
blanda inte in recordset i det här för då blir jag lessen i ögat! ;)
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
all your base are belong to us!</A>
Varför funkar det inte nu då? :(
<%
Set StatisticCon = Server.CreateObject("ADODB.Connection")
StatisticCon.Open "Provider=SQLOLEDB; Data Source=192.168.0.8; Initial Catalog=IABStatistic; User ID=sa;"
For i = 1 to 1000
Randomize
slump = Int((365 - 1 + 1) * Rnd + 1)
slumpdatum = dateadd("d",slump,"2000-12-31")
strSQL = "insert into tblStatistic(VisitDate) values ('" & slumpdatum & "')"
StatisticCon.execute (strSQL)
Next
%>
Microsoft OLE DB Provider for SQL Server error '80040e14'
Violation of PRIMARY KEY constraint 'PK_tblStatistic'. Cannot insert duplicate key in object 'tblStatistic'.
/erik/IABStatistic/Default.asp, line 10
------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/
[Redigerat av Erik Juhlin den 26 apr 2001]
aha! du har satt datumkolumnen som primärnyckel, då kan du inte stoppa in värden (datum) som redan finns där. släng in en räknare (int, identity) i tabellen som primärnyckel istället, så kan du ha flera datum som är likadana.
du måste då tömma tabellen först, för du har ett gäng datum där nu...
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
all your base are belong to us!</A>
Troligtvis är fältet indexerat, och kopior tillåts inte, mao. samma datum
Sen finns ju slumpfunktion i MSSQL, så du kan faktiskt skapa slumpdatumen direkt i sql satsen.
/T
------------------
This is what the KLF is about
toonster, berätta gärna mer om slumpfuktionen i sql server!
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
all your base are belong to us!</A>
[Redigerat av @nders den 26 apr 2001]
Schysst @nders!
Men går det att få samma datumformat som Now?
------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/
jag tar mig friheten att citera LarsG från en nylig tråd i forumet SQL.
Formatet i databasen går inte att ändra på. Internt så lagras datum som ett numeriskt värde som anger antal sekunder från en viss tidpunkt.) Du får använda convert när du hämtar data i stället.
besvarade det din fråga?
mvh,
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
all your base are belong to us!</A>
Nej, jag förstår inte. Fick detta svaret av Hanns.
rs("VisitDate") = DateAdd("s", (31536000*RND) Mod 31536000 "2001-01-01")
Men det förstår jag inte riktigt heller. :l
Nu ser det ut så här:
<%
Set StatisticCon = Server.CreateObject("ADODB.Connection")
StatisticCon.Open "Provider=SQLOLEDB; Data Source=192.168.0.8; Initial Catalog=IABStatistic; User ID=sa;"
For i = 1 to 1000
Randomize
slump = Int((365 - 1 + 1) * Rnd + 1)
slumpdatum = dateadd("d",slump,"2000-12-31")
strSQL = "insert into tblStatistic(VisitDate) values ('" & slumpdatum & "')"
StatisticCon.execute(strSQL)
Next
Set StatisticCon = Nothing
%>
Och då lagras datumen i formatet 2001-04-26. Jag vill att de ska lagras i formatet 2001-04-26 11:58:51.
------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/
Då får du väl lägga till en slumpmässigt antal sekunder också.
For i = 1 to 1000
Randomize
slump = Int((365 - 1 + 1) * Rnd + 1)
slumpdatum = dateadd("d",slump,"2000-12-31")
slump = int(24*60*60*Rnd)
slumpdatum = dateadd("s",slump,slumpdatum)
strSQL = "insert into tblStatistic(VisitDate) values ('" & slumpdatum & "')"
StatisticCon.execute(strSQL)
Next
och sen när man plockar ut datum så använder man
FormatDateTime(rs("datum"),vbLongDate)
FormatDateTime(rs("datum"),vbLongTime)
t.ex. för att bestämma presentationsformatet. Det format man får bestäms av vilken locale inställning man har.
session.lcid = 1053
passar bra för att få svenskt utseende.
------------------
essentitia preter non sans multiplicandum
[Redigerat av LarsG den 26 apr 2001]