---
title: "Slumpa ut 1000 datum"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/9171-slumpa-ut-1000-datum"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Erik Juhlin"
published: "2001-04-26T08:04:00.000Z"
updated: "2001-04-26T14:19:00.000Z"
replies: 17
views: 683
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/9171-slumpa-ut-1000-datum"
---

# Slumpa ut 1000 datum

## #1 — Erik Juhlin, 2001-04-26T08:04Z

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.

Permalänk: https://www.webforum.nu/p/9171

## #2 — @nders, 2001-04-26T08:16Z

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... ;)

Permalänk: https://www.webforum.nu/p/267228

## #3 — Erik Juhlin, 2001-04-26T08:22Z

Hur man slumpar fram 1000 datum. Vill ha in olika datum under år 2001 i StatisticDate i tabellen tblStatistic.

Permalänk: https://www.webforum.nu/p/267229

## #4 — @nders, 2001-04-26T08:26Z

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? ;)

Permalänk: https://www.webforum.nu/p/267230

## #5 — Erik Juhlin, 2001-04-26T08:28Z

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. :)

Permalänk: https://www.webforum.nu/p/267231

## #6 — @nders, 2001-04-26T08:31Z

ok, för det kan vara lite klurigt att få in tusen *olika* datum under ett år nämligen. :)

Permalänk: https://www.webforum.nu/p/267232

## #7 — Erik Juhlin, 2001-04-26T08:42Z

Okej, men det ska i alla fall inte vara 1000 lika datum. :)

Permalänk: https://www.webforum.nu/p/267233

## #8 — @nders, 2001-04-26T08:44Z

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,

Permalänk: https://www.webforum.nu/p/267234

## #9 — Erik Juhlin, 2001-04-26T08:56Z

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.

Permalänk: https://www.webforum.nu/p/267235

## #10 — @nders, 2001-04-26T08:59Z

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! ;)

Permalänk: https://www.webforum.nu/p/267236

## #11 — Erik Juhlin, 2001-04-26T09:06Z

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

Permalänk: https://www.webforum.nu/p/267237

## #12 — @nders, 2001-04-26T09:21Z

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...

Permalänk: https://www.webforum.nu/p/267238

## #13 — Toonster, 2001-04-26T09:23Z

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

Permalänk: https://www.webforum.nu/p/267239

## #14 — @nders, 2001-04-26T09:25Z

toonster, berätta gärna mer om slumpfuktionen i sql server!

Permalänk: https://www.webforum.nu/p/267240

## #15 — Erik Juhlin, 2001-04-26T09:35Z

Schysst @nders!
Men går det att få samma datumformat som Now?

Permalänk: https://www.webforum.nu/p/267241

## #16 — @nders, 2001-04-26T09:40Z

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,

Permalänk: https://www.webforum.nu/p/267242

## #17 — Erik Juhlin, 2001-04-26T09:55Z

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.

Permalänk: https://www.webforum.nu/p/267243

## #18 — LarsG, 2001-04-26T14:19Z

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.

Permalänk: https://www.webforum.nu/p/267244

---

Tråden på webben: https://www.webforum.nu/amne/asp/9171-slumpa-ut-1000-datum
