---
title: "Hämta födelsedatum"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/80496-hämta-födelsedatum"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Bj"
published: "2003-06-25T04:57:11.000Z"
updated: "2003-06-26T15:05:25.000Z"
replies: 16
views: 459
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/databaser-sql/80496-hämta-födelsedatum"
---

# Hämta födelsedatum

## #1 — Bj, 2003-06-25T04:57Z

Nedanstående sql har funkat fint under juni månad. Men nu, när det är mindre än 7 dagar kvar till juli så visas födelsedatumen från 1/6 - 22/7.

```
sql = "select * from kunder where month( fodelseDatum ) between " & month( date() ) & " and " & month( dateadd( "D", 7, date() ) ) & " and day(fodelseDatum) between " & day( now() ) & " and " & day( dateadd( "D", 7, date() ) )& _
" ORDER BY month( FodelseDatum ),day( FodelseDatum ) ASC "
```

Hur skall man ändra för att det fortfarande är de sju närmaste dagarnas födelsedagar som skall visas?

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

## #2 — Engine^, 2003-06-25T07:59Z

```
SELECT * FROM kunder WHERE fodelseDatum BETWEEN Date() AND DateAdd("d", 7, Date())
ORDER BY Month(fodelseDatum), Day(fodelseDatum)
```

Det känns onödigt att dela upp födelsedatumet i delar, när du ändå vill kontrollera mot hela datum.

**red.**  Eller så kanske det inte är så onödigt ;) Du vill ju kolla om det är en kund som har en födelsedag de närmaste sju dagarna... Men du måste göra om fodelseDatum till att vara ett helt datum

```
SELECT * FROM kunder WHERE DateSerial(Year(Date), Month(fodelseDatum), Day(fodelseDatum)) BETWEEN Date() AND DateAdd("d", 7, Date())
ORDER BY Month(fodelseDatum), Day(fodelseDatum)
```

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

## #3 — Bj, 2003-06-25T11:50Z

Fick följande felmedd.
Feltyp:
Kompileringsfel i Microsoft VBScript (0x800A03EA)
Syntaxfel
main.asp, line 316, column 6
sql = SELECT \* FROM kunder WHERE DateSerial(Year(Date), Month(fodelseDatum), Day(fodelseDatum)) BETWEEN Date() AND DateAdd("d", 7, Date())
\-----^

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

## #4 — Peeer, 2003-06-25T11:52Z

```
sql = [b]"[/b]SELECT * FROM kunder WHERE fodelseDatum BETWEEN Date() AND DateAdd("d", 7, Date()) "&_
"ORDER BY Month(fodelseDatum), Day(fodelseDatum)[b]"[/b]
```

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

## #5 — Bj, 2003-06-25T12:10Z

Satte en denna raden.
sql = "SELECT \* FROM kunder WHERE fodelseDatum BETWEEN Date() AND DateAdd("d", 7, Date())
Då blev det så här....
Feltyp:
Kompileringsfel i Microsoft VBScript (0x800A0401)
Slut på programsats förväntas.
main.asp, line 316, column 75
sql = "SELECT \* FROM kunder WHERE fodelseDatum BETWEEN Date() AND DateAdd("d", 7, Date())

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

## #6 — Peeer, 2003-06-25T12:12Z

Ändrat lite, prova koden ovan igen :)

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

## #7 — Engine^, 2003-06-25T12:14Z

Mmm... du har glömt att avsluta sql-strängen med ett citationstecken. (")

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

## #8 — Bj, 2003-06-25T12:17Z

Det var då tusan....
Feltyp:
Kompileringsfel i Microsoft VBScript (0x800A0401)
Slut på programsats förväntas.
main.asp, line 317, column 75
sql = "SELECT \* FROM kunder WHERE fodelseDatum BETWEEN Date() AND DateAdd("d", 7, Date()) "&\_
\--------------------------------------------------------------------------^

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

## #9 — Engine^, 2003-06-25T12:21Z

Ähh... är rad 318 fortsättning på sql-satsen? Är det så här det ska se ut kanske

```
sql = "SELECT * FROM kunder WHERE DateSerial(Year(Date), Month(fodelseDatum), Day(fodelseDatum))" & _
      " BETWEEN Date() AND DateAdd("d", 7, Date()) ORDER BY Month(fodelseDatum), Day(fodelseDatum)"
```

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

## #10 — Bj, 2003-06-25T12:29Z

Aarrghh... ;)

Engine; Följande felmedd......
Feltyp:
Kompileringsfel i Microsoft VBScript (0x800A0401)
Slut på programsats förväntas.
main.asp, line 318, column 30
" BETWEEN Date() AND DateAdd("d", 7, Date()) ORDER BY Month(fodelseDatum), Day(fodelseDatum)"
\-----------------------------^

Ps använder mig av access databas om det skulle betyda ngn skillnad...

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

## #11 — Engine^, 2003-06-25T13:48Z

Åhhh... tänkte aldrig på att det var en sträng... suck!

Det ordnar sig nog om du byter citationstecknen i DateAdd("d", 7, Date()) till apostrofer: DateAdd(**'d'**, 7, Date())

Resultatet blir såhär

```
sql = "SELECT * FROM kunder WHERE DateSerial(Year(Date()), Month(fodelseDatum), Day(fodelseDatum))" & _
      " BETWEEN Date() AND DateAdd('d', 7, Date()) ORDER BY Month(fodelseDatum), Day(fodelseDatum)"
```

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

## #12 — Bj, 2003-06-25T14:50Z

Nu svalde den sql-satsen men fastnade på följande rad.

```
RecSet.Open SQL, Connect, adOpenStatic, adLockOptimistic
```

Verkar märkligt. Min originalrad som blivit fel vid månadsskiftet ser ut på följande vis.

```
'sql = "select * from kunder where month( fodelseDatum ) between " & month( date() ) & " and " & month( dateadd( "D", 7, date() ) ) & " and day(fodelseDatum) between " & day( now() ) & " and " & day( dateadd( "D", 7, date() ) )& _
'" ORDER BY month( FodelseDatum ),day( FodelseDatum ) ASC "
```

Men nu hamnar jag kanske i fel forum för vidare information?

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

## #13 — Bj, 2003-06-26T12:22Z

Har nu testat med Ditt förslag Engine

```
sql = "SELECT * FROM kunder WHERE DateSerial(Year(Date()), Month(fodelseDatum), Day(fodelseDatum))" & _
      " BETWEEN Date() AND DateAdd('d', 7, Date()) ORDER BY Month(fodelseDatum), Day(fodelseDatum)"
```

Men något måste vara galet med SQL-satsen....men vad?

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

## #14 — Engine^, 2003-06-26T13:28Z

Vad är det som blir galet?

Din orginalfråga blir galen, eftersom du testar månad och dag för sig.

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

## #15 — Bj, 2003-06-26T13:42Z

Jo nu får jag ett felmedd. som säger
Typblandningsfel i villkorsuttryck.
Det gäller raden:
RecSet.Open sql, Connect, adOpenStatic, adLockOptimistic

Detta felmeddelande kan man väl ibland få om ngt inte är helt riktigt med sql-satsen?
Skickar med hela kodsnutten så får du se det hela.

```
<%
Set RecSet = Server.CreateObject("ADODB.Recordset")

sql = "SELECT * FROM kunder WHERE DateSerial(Year(Date()), Month(fodelseDatum), Day(fodelseDatum))" & _
"BETWEEN Date() AND DateAdd('d', 7, Date()) ORDER BY Month(fodelseDatum), Day(fodelseDatum)"

RecSet.Open sql, Connect, adOpenStatic, adLockOptimistic

if RecSet.EOF then
response.write "Inga födelsedagar denna vecka"
else

Do Until RecSet.EOF
alder = RecSet("FodelseDatum")
response.write RecSet("Fornamn") & " " & RecSet("Efternamn") & "  " & round( DateDiff("y",alder,date())/365.2375 ) & " år den " & day(RecSet("Fodelsedatum")) &"/" & month(RecSet("Fodelsedatum")) &"<br>"

RecSet.MoveNext
Loop
end if
RecSet.Close
Connect.Close
%>
```

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

## #16 — Engine^, 2003-06-26T14:14Z

Åhå... det trilskas med datumtypen... tro om det kan gå att lösa såhär då

```
sql = "SELECT * FROM kunder WHERE DatePart('Y', DateSerial(Year(Date()), Month(fodelseDatum), Day(fodelseDatum)))" & _
      " BETWEEN DatePart('Y', Date()) AND DatePart('Y', DateAdd('d', 7, Date())) ORDER BY Month(fodelseDatum), Day(fodelseDatum)"
```

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

## #17 — Bj, 2003-06-26T15:05Z

Suck... samma felmeddelande...

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/80496-hämta-födelsedatum
