---
title: "Datum"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/113695-datum"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "SannyW"
published: "2004-10-16T17:47:38.000Z"
updated: "2004-10-17T17:11:06.000Z"
replies: 21
views: 460
page: 1
pages: 2
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/databaser-sql/113695-datum"
---

# Datum

_Sida 1 av 2._

## #1 — SannyW, 2004-10-16T17:47Z

Hej!

Jag använder nedanstående för att visa föregående och nästa match.

Förra

WHERE ((Datum=Date() AND TID \< Time ()) or DATUM\< Date())  ORDER BY DATUM DESC, TID"

Nästa
WHERE ( (DATUM= Date()  AND TID\> Time() ) OR DATUM\> Date() ) ORDER BY DATUM, TID" 

Försöker utveckla det hela och vill göra om det till 

.Förra

.Pågående (gäller i 120 minuter)

.Nästa

Om jag skriver ut Datum så blir det ex. 2004-10-17 
Tid ex. 14:00:00 Alltså datum och tid ligger i vars en kolumn. 

Först och främst, har letat men hittar det inte. Hur lägger jag på +120 minuter på 14:00:00. När jag försöker lägg +2 h så ändra åren bara.

Databas ser ut:
Datum          Tid            Händelse
2004-11-01  16:00:00  Händelse
2004-11-02  12:00:00  Händelse (aktiv under 120 min)
2004-11-02  18:00:00  Händelse

Hoppas på lite hjälp i rätt riktning.

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

## #2 — LarsG, 2004-10-16T18:33Z

Det beror på DBMS

I access t.ex finns funktionen dateadd för att lägga till interval till en tid.

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

## #3 — SannyW, 2004-10-16T20:16Z

Ok. Har access, har kollat lite på dateAdd. Att lägga på 2 h på Date () är väl:

dateAdd("h", 2, time)

Men hur blir det när man vill göra det på RecSet("Tid") ?

/r 

strTid = RShnext("tid")

new2Tid = dateAdd("h", 2, strTid)

Om jag ser rätt så gör man enligt ovan :)

/r2

minuter funkar lika bra:

strTid = RShnext("tid")

new2Tid = dateAdd("n", 150, strTid)

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

## #4 — SannyW, 2004-10-16T21:14Z

Så där ja, om jag har tänkt rätt så borde det bli så här:

```
Förra

WHERE ((Datum=Date() AND DateAdd('n',150,TID) < Time ()) or DATUM< Date()) ORDER BY DATUM DESC, TID"

Pågående

((Datum=Date() AND Datediff('n',(dateAdd('n', 150, TID)),TID) < Time ()) or DATUM< Date())

Nästa

WHERE ( (DATUM= Date() AND DateAdd('n',150,TID) > Time() ) OR DATUM> Date() ) ORDER BY DATUM, TID"
```

Om LarsG eller någon annan ser något fel så skrik gärna till.

/r har testat en massa nu och det blir ju helt uppåt väggarna. Märker tydligt att mina önskedrömmar är större än min kunskaper.

Får kolla på detta imorgon, hjälp önskas om någon känner sig manade.

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

## #5 — @nders, 2004-10-17T06:37Z

Felet är att du lagrar datum och tid i separata fält. Lägg ihop både datum och tid till ett fält, så kommer DateAdd() att returnera det du vill.

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

## #6 — SannyW, 2004-10-17T13:36Z

Jag gjorde som du sa @nders, men nu öppnade en helt ny värld av problem.

Om jag har Datum = 2004-01-01 14:00:00

Försöker sedan använda det mot Datum = Date() så hade jag tänkt mig att det skulle funka. Men det gör det såklart inte...frågan är om jag måste använda DatePart för h, min, sek?

Letar av bara livet i forumet, men just nu måste jag vara riktigt dålig på det. Hittar inte riktigt vad jag behöver...

/r 

Har nu knåpat och testat lite till, men får inte helt till det. Fel är det men min "tanke" gångar är enligt nedan:

Datum = (#"&(DatePart("yyyy", Datum)&"-"&DatePart("m", Datum)&"-"&DatePart("d", Datum))&"#)

som ger helt fel svar:

1899-12-30 (slipper tiden i allafall :) )

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

## #7 — @nders, 2004-10-17T15:00Z

Vad innehåller asp-variabeln *Datum* då? Kan man få se lite mer kod i sammanhang?

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

## #8 — SannyW, 2004-10-17T15:11Z

Jag såg det @nders att jag gjort en miss, men jag får fortfarande samma fel:

Problemet uppstår när jag försöker bädda in det i SQL.

```
strDate = Date()

SQL = "SELECT TOP 1 * FROM tbl_matcher WHERE Datum=#"&(DatePart("yyyy", strDate)&"-"&DatePart("m", strDate)&"-"&DatePart("d", strDate))&"# ORDER BY DATUM"
```

/r usch, det börjar bli mkt nu. 

Det måste väl ändå bli

```
WHERE Date()=(#DatePart('yyyy', Datum)'-'DatePart('m', Datum)'-'DatePart('d', Datum)#)
```

Dagens datum skall ju vara = databasen och DatePart (yyyy:mm:dd)

Men har fortfarande problem med SQL-satsen.

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

## #9 — @nders, 2004-10-17T15:54Z

Men alltså. Det är väl datumet som ligger i databasen som du i jämförelsen vill "ta bort" tiden ifrån? Enklast är nog dock om du använder DateDiff() i SQL-frågan istället för DatePart().

Mvh

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

## #10 — SannyW, 2004-10-17T16:11Z

Det stämmer, men när jag använder DateDiff() är det inte tiden mellan Date1 och Date2 ?

Du menar att jag skall använda:

WHERE Datediff('n',Date(), Datum)

men det ger mig samma fel.

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

## #11 — @nders, 2004-10-17T16:13Z

Nu börjar jag klia mig i skallen.

Vi tar det från början :)

Exakt vad är det du vill få ut, dvs vilka villkor vill du ställa?

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

## #12 — SannyW, 2004-10-17T16:24Z

:)

Ok.

I databasen har jag datum, som innehåller 2004-10-17 12:00:00

Jag vill skriva ut top 1 där Datum= Date() , men problemet som jag ser är att det blir

2004-10-17 12:00:00 = 2004-10-17 

Därför ville jag göra om Datum med hjälp av DatePart().

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

## #13 — @nders, 2004-10-17T16:27Z

Och jag tycker du ska använda DateDiff istället. :)

```
... WHERE DateDiff('d', Date, Datum) = 0
```

Fungerar inte det?

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

## #14 — SannyW, 2004-10-17T16:33Z

Nej tyvärr fungerade inte ovanstående:

Microsoft JET Database Engine error '80040e10'

No value given for one or more required parameters.

/tid.asp, line 22

Men jag fick faktiskt DatePart till att fungera precis:

```
WHERE Date()=(DatePart('yyyy', Datum)&""-""&DatePart('m', Datum)&""-""&DatePart('d', Datum))
```

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

## #15 — @nders, 2004-10-17T16:36Z

Det där ser alldeles för kladdigt ut för att jag ska tycka om det. ;)
Prova detta istället:

```
WHERE DateDiff('d', now(), Datum) = 0
```

mvh

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

## #16 — SannyW, 2004-10-17T16:36Z

Använder sedan för att göra den önskade delen synlig från 12:00:00 fram tills 14:30:00

\<%
strDatum = RShnext("datum")

 IF dateAdd("n", 150, strDatum) \> now() THEN%\>

Detta är då pågående.....nu skall jag bara fixa till förre och efter också :)

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

## #17 — @nders, 2004-10-17T16:37Z

Uh? Varför inte använda DateDiff direkt i SQL-frågan?

Jag tycker inte om när man löser problem på fel sätt. ;)

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

## #18 — SannyW, 2004-10-17T16:38Z

:) Visst funkar ditt också, lite snyggar också kanske ;)

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

## #19 — SannyW, 2004-10-17T16:40Z

Tack så jätte mycket för din hjälp, om du känner att du orkar så får du gärna förklara vad det är som är :

löser problem på fel sätt.

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

## #20 — @nders, 2004-10-17T16:41Z

.. och du kan alltså använda datediff() på minuter också, för att hämta matcher inom vissa minutintervall.

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/113695-datum  
Nästa sida: https://www.webforum.nu/amne/databaser-sql/113695-datum/page2.md
