---
title: "Mellan datum eller tomt?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/101547-mellan-datum-eller-tomt"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Jesper T"
published: "2004-04-14T20:01:10.000Z"
updated: "2004-04-18T19:31:13.000Z"
replies: 20
views: 516
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/asp/101547-mellan-datum-eller-tomt"
---

# Mellan datum eller tomt?

_Sida 1 av 2._

## #1 — Jesper T, 2004-04-14T20:01Z

Jag får inte detta att funka.
Så här skulle jag vilja ha´t:
Om dateFrom och dateTo är inom "rätt" intervall.
(dateFrom skall ha inträffat men dateTo skall inte ha inträffat.) och både dateFrom och dateTo kall kunna vara tomma eller null
(vet inte vad som returneras ifrån ett recset om man inte fyller den med ngt.)

null & null = OK
"1999-01-01" & "2008-01-01" = OK
null & "2008-01-01" = OK
"1999-01-01" & null = OK

null & "1999-01-01" = Inte OK
"2008-01-01" & "1999-01-01" = Inte OK
"2008-01-01" & null = Inte OK

```
If (datediff("s",dateFrom,now()) > 1 and datediff("s",dateTo,now()) < 1) or dateFrom ="" or dateTo="" then
'ett och 
else
'annat
end if
```

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

## #2 — Engine^, 2004-04-14T20:34Z

Jag vet inte om jag tolkat ditt halvkryptiska problem rätt men här är ett förslag

```
blnIntervalOk = True

If dateFrom = "" And DateDiff("d", Now(), dateTo) < 0 Then blnIntervalOk = False
If dateTo = "" And DateDiff("d", Now(), dateFrom) > 0 Then blnIntervalOk = False
If DateDiff("d", dateFrom, dateTo) > 0 Then blnIntervalOk = False

If blnIntervalOk Then
  [blue]'ett och[/blue]
Else
  [blue]'annat[/blue]
End If
```

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

## #3 — Jesper T, 2004-04-14T21:14Z

Nepp. Testa detta.(som är inom intervallet för "now") 

```
blnIntervalOk = True
dateFrom="2001-01-01" : dateTo="2005-01-01"

If dateFrom = "" And DateDiff("d", Now(), dateTo) < 0 Then blnIntervalOk = False
If dateTo = "" And DateDiff("d", Now(), dateFrom) > 0 Then blnIntervalOk = False
If DateDiff("d", dateFrom, dateTo) > 0 Then blnIntervalOk = False

If blnIntervalOk Then
Response.write "Ok, gäller!"
Else
Response.write "Gäller ej!"
End If
```

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

## #4 — Engine^, 2004-04-14T21:21Z

**red.**
Men... va?

Vilka kriterier har du egentligen?

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

## #5 — Jesper T, 2004-04-14T21:24Z

samma fel

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

## #6 — Jesper T, 2004-04-14T21:25Z

va, är det fel på dem?

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

## #7 — Engine^, 2004-04-14T21:30Z

Mja... det kan jag väl inte säga direkt, men för mig är dom för luddiga.

Vad är icke tillåtet?

```
If dateTo = "" And dateTo < Now Then IG
If dateFrom = "" And dateFrom > Now Then IG
If dateFrom > dateTo Then IG
```

Så uppfattade jag det.

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

## #8 — Jesper T, 2004-04-14T21:39Z

Alltså. 
Både dateFrom och dateTo skall kunna vara tomma.
Men, finns ett datum i något av dem, så måste det vara "rätt". 
(dateFrom skall ha passerats men dateTo skall inte ha passerats.)

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

## #9 — Erik Juhlin, 2004-04-15T08:36Z

Du har ingen möjlighet att göra det direkt med SQL?
Är lite enklare...

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

## #10 — Erik Juhlin, 2004-04-15T08:40Z

Men det borde väl gå att skrvia så här:

```
n = Now
If IsNull(dateFrom) Then dateFrom = n
If IsNull(dateTo) Then dateTo = n

If dateFrom > n Or dateTo < n Then
	'Inte ok
Else
	'Ok
End If
```

Möjligt att du får skriva n = Date. Beroende på vad för datum som kommer ur DBn.

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

## #11 — Jesper T, 2004-04-15T14:06Z

> **Erik Juhlin skrev:**
>
> Du har ingen möjlighet att göra det direkt med SQL?
> Är lite enklare...

Iofs. men jag behöver alla poster ändå.

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

## #12 — Jesper T, 2004-04-15T17:19Z

Jag vet! :i  :)

```
Dim n,dateFrom,dateTo 
n = now()
dateFrom="" : dateTo=""

If Not IsDate(dateFrom) Then dateFrom = n
If Not IsDate(dateTo) Then dateTo = n

If DateDiff("n", n, dateFrom) > 0 Or DateDiff("n", n, dateTo) < 0 Then
	Response.write "Inte OK!"
Else
	Response.write "OK!"
End If
```

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

## #13 — Erik Juhlin, 2004-04-16T15:04Z

Ungefär så jag skrev ju.

Smartare att använda Len istället för IsDate eftersom att längden ligger lagrat för strängar. Men jag förutsätter att det kommer null-värden får databasen när det inte finns något datum och då fungerar IsNull bra.

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

## #14 — Jesper T, 2004-04-16T15:07Z

Ok, men jag fick aldrid din att funka.

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

## #15 — Jesper T, 2004-04-16T17:23Z

> Du har ingen möjlighet att göra det direkt med SQL?
> Är lite enklare...

Hur skulle det se ut då då?

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

## #16 — Erik Juhlin, 2004-04-17T18:22Z

Så här skriver man i SQL-Server. Tror man får använda NOW() istället för GETDATE() i Access.

```
SELECT * FROM tbl WHERE GETDATE() BETWEEN COALESCE(datefrom, GETDATE()) AND COALESCE(dateto, GETDATE())
```

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

## #17 — Jesper T, 2004-04-18T09:31Z

Tack, det är mySql, det verkar som om även mySql har den funktionen också.
Men vad är igentligen skillnaden?

```
på:
now() BETWEEN sp_validdatefrom AND sp_validdateto
eller:
now() BETWEEN COALESCE(sp_validdatefrom, now()) AND COALESCE(sp_validdateto, now())
```

Resultatet blir ju det samma.
Denna post visas te.x. inte i något fall:
sp_validdatefrom = "1999-01-04"
sp_validdateto = ""

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

## #18 — Erik Juhlin, 2004-04-18T19:21Z

Fältet måste vara i datumformat och det ska vara NULL om inte något datum är angett.

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

## #19 — Jesper T, 2004-04-18T19:26Z

Ok, men går det att sätta fältet till null om fältformatet är datetime?

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

## #20 — Erik Juhlin, 2004-04-18T19:27Z

Yes, går dock inte att sätta det till "" då...

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/101547-mellan-datum-eller-tomt  
Nästa sida: https://www.webforum.nu/amne/asp/101547-mellan-datum-eller-tomt/page2.md
