---
title: "Visa nästa \"datum\""
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/123929-visa-nästa-datum"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "boilwater"
published: "2005-03-08T11:50:00.000Z"
updated: "2005-03-11T21:00:10.000Z"
replies: 18
views: 480
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/123929-visa-nästa-datum"
---

# Visa nästa "datum"

## #1 — boilwater, 2005-03-08T11:50Z

Hej!

Denna koden använder jag för att hämta nästa match: 

```
Set objRs = objConn.Execute("SELECT TOP 1 * FROM matchertr WHERE datum & tid > now() ORDER BY datum ASC")
```

 

I posten "datum" är det hela datumet, alltså t.ex. 2005-03-18

I mars finns det flera än en match, men när det första datumet i mars är "över" klarar den inte av att hämta flera i mars månad, utan går vidare till nästa månad och första matchen/datumet där.

Finns det något sätt att fiksa detta, eller måste jag göra om databasen så jag har en post för dag, en för månad och en för år ?

På förhand tack för hjälpen!

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

## #2 — boilwater, 2005-03-08T14:35Z

Nu har jag gjort en "ar", "manad", "dag" post och tagit bort "datum". Jag tror jag kommit på hur jag kan göra det, men nu är problemet att jag inte kan skriva dag och månad som med två siffer om datumet är lägre än 10, alltså t.ex. 05. Och eftersom jag inte får till det, sorteras matcherna inte rätt.

Hur gör jag det så att det alltid går att skriva två siffror?

Är det rätt at göra dag,månad,år som tall i databasen?

Hoppas någon kan och vill hjälpa mig :)
Tack igjen

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

## #3 — J.N., 2005-03-08T14:41Z

HEJ!

Datum ska lagras hela i 99,9% i fallen.

Jag förstår inte vad du menar med "den inte klarar att hämta fler datum"?
Varför går den vidare till april?
Får du träff i mars, borde du ta nästa datum, och jämföra till den blir sann, oavsett månadsskiften.

Tror du inte ska använda TOP, utan hämta de poster som finns.
Sedan jämför du till första träffen är rätt, hoppar till nästa post och fortsätter jämföra.

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

## #4 — boilwater, 2005-03-08T14:56Z

Hej!

Ja, du...Varför den går vidare till april vet jag inte, det är därför jag skriver här ;)

Alltså jag är inte så bra på det här, så det är mycket möjligt detta är enkelt för många, men inte för mig. :)

Jag kan skriva hela koden här, är den rätt? Vad skall jag skriva om TOP inte skall vara med?

```
<%
Dim objConn
Set objConn = Server.CreateObject("adodb.Connection")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/mapp/databasen.mdb")

Dim objRs
Set objRs = objConn.Execute("SELECT TOP 1 * FROM matchertr WHERE datum & tid > now() ORDER BY datum ASC")

Do until objRs.EOF
     
	 %>
              <tr valign="top" class="text">
                <td width="9%"><strong>Tr.m.</strong></td>
                <td width="27%"><% Response.Write (objRs("hemma")) %>
-
  <% Response.Write (objRs("borta")) %></td>
                <td width="21%"><div align="left">
                    <% Response.Write (objRs("datum")) %>
                </div></td>
                <td width="13%"><div align="right">
                    <% Response.Write (objRs("tid")) %>
                </div></td>
                <td width="30%"><div align="right">
                    <% Response.Write (objRs("plan")) %>
                </div></td>
              </tr>
              <% objRs.MoveNext
Loop

Set objRs = Nothing
Set objConn = Nothing
%>
```

Det var så jag hade det förut, databasen består av datum (datum/klocka, kort), tid (datum/klocka, kort), + andra poster som inte hör till denna frågan.

Och vad jag menade med det du "frågar", J.N., är att den inte hämtar nästa match (låt oss kalla den match nr. 2) i mars efter match nr 1 i samma månad är färdig, utan går till match nr1 i april.

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

## #5 — boilwater, 2005-03-10T20:11Z

Är det ingen som kan hjälpa mig med detta? :(

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

## #6 — Riffles, 2005-03-10T20:32Z

Du ska inte behöva "dela upp" ditt datum utan behåll det som vanligt. Lagra det som datum i din databas.
Skriv Select \* i din SQL-sats och kolla verkligen så att du har matcher som spelas efter det datumet som du jämför med eller kolla i din databas.

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

## #7 — boilwater, 2005-03-10T21:03Z

Hej!

Ok, jag har datumet och tiden som vanligt.
Men med denna koden:

```
Set objRs = objConn.Execute("SELECT * FROM matchertr WHERE datum & tid > now() ORDER BY datum ASC")
```

hämtas ju alla matcher? Och om jag skriver Select Top 1, kommer et datum som varit. 

I mars är första matchen inmatat så här i databasen:
2005-03-07
Nästa match som då skall komma är
2005-03-13
Men problemet som har varit är att första matchen i april hämtas:
2005-04-03

Jag känner mig helt vilsen just nu, fattar ingenting \*s\*

Finns det ingen mer kod man kan lägga in som specifiserar att den skall kolla hela månaden ut, före den går vidare till nästa?

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

## #8 — Poffe, 2005-03-10T22:17Z

Vad är det för datatyp på fältet där du sparar datumet? Varför separerar du tid och datum?

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

## #9 — boilwater, 2005-03-10T22:24Z

Sparar det som Datum/Klocka, om det är det du menar. Och jag trodde jag måste spara datum och tid separat. Det är väl oavsätt inte det som gör problemet? :)

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

## #10 — Poffe, 2005-03-10T22:29Z

Om du använder 

```
Set objRs = objConn.Execute("SELECT * FROM matchertr WHERE datum & tid > now() ORDER BY datum ASC")
```

Skrivs det då ut i rätt ordning?

Det går utmärkt att spara datum oc tid i samma fält. Man ska laltid försöka hålla informationen så "hel" som möjligt och inte dela upp den.

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

## #11 — boilwater, 2005-03-10T22:50Z

Nej, skriver jag den kommer samtliga poster ut, också den "gamla" (fallande ordning, med 8 mars först)

Jag vill ha bara 1 post fram, och det är den kommande (närmaste kommande datum)

Jag får nog börja "om", och göra databasen på nytt. Nu har jag hoppat fram och tillbaka så mycket med den att det mycket möjligt har blivit något fel som jag inte ser eller fattar. 

Om ni förstås inte har några flera idéer. :)

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

## #12 — Riffles, 2005-03-11T19:42Z

Vad händer om du skriver följande:
Set objRs = objConn.Execute("SELECT \* FROM matchertr WHERE datum \> now() ORDER BY datum ASC") ?
Alltså skippar tiden.
Då måste den skriva ut alla matcher i den ordningen som du har skrivit (datum ASC).

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

## #13 — boilwater, 2005-03-11T19:53Z

Hej!

Jo då funkar det, men då ser man inte dagens match om det finns en sådan (alltså om det hade varit en match i dag 11 mars, försvann den då man gick från 10:e till 11:e).

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

## #14 — Riffles, 2005-03-11T19:59Z

Då kan du gör en IF-sats som jämför dina datum.
Ex. Om matchen spelas idag, skriv en text med info.
Om du hoppar fram en dag så visas inte matchinfon från matchen den 11:e utan nästa matchs info.

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

## #15 — Riffles, 2005-03-11T20:01Z

Du måste ha med WHERE datum \>= now()

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

## #16 — boilwater, 2005-03-11T20:15Z

Du får ursäkta så mycket, men hur skall jag skriva en IF-sats som jämför datum? :)

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

## #17 — boilwater, 2005-03-11T20:19Z

Har testat det här:

```
<% if objRS("datum") = now() Then
   response.write FormatDateTime(objRs("datum"),2) 
else
   response.write FormatDateTime(objRs("datum"),2) 
end if
%>
```

om jag tar bort den första "respons write" och t.ex bara skriver hej, då kommer det fram. Men om jag vill ha fram datumet som koden ovenför visar så kommer den 13 mars, inte dagens testdatum (11.mars).

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

## #18 — Riffles, 2005-03-11T20:40Z

Om du har med \>= i din SQL-sats så borde den ta med dagens match. Då tar den med dagens och alla matcher efter det datumet. Vill du bara ha med ett datum så skriver du SELECT TOP 1 \* FROM ...

Sök på IF-sats här i forumet.;)

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

## #19 — boilwater, 2005-03-11T21:00Z

Hurra nå tror jag det funkar, jag hade inte helt koll på databasen orkar inte förklara, bara att jag är vimsig :r 

**Tusen tusen tack för hjälpen Riffles!**  :birp

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/123929-visa-nästa-datum
