---
title: "Hämta de tre närmaste födelsedagarna"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/142850-hämta-de-tre-närmaste-födelsedagarna"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "LeonL"
published: "2006-02-22T15:11:31.000Z"
updated: "2006-02-22T18:41:12.000Z"
replies: 3
views: 270
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/142850-hämta-de-tre-närmaste-födelsedagarna"
---

# Hämta de tre närmaste födelsedagarna

## #1 — LeonL, 2006-02-22T15:11Z

I en databas har jag i min användartabell ett datumfält för användarens födelsedag. Datumfältet innehåller olika årtal (för att räkna ut hur gamla de blir).

Hur skall jag skriva SQL-frågan så att servern hämtar de tre personer som fyller år snart? 

Jag har förstått att man kan använda VBScript-funktionen Month() i SQL-frågan, men då tar man inte någon som helst hänsyn till dagen (om det råkar vara flera som fyller år under samma månad).

Jag har i alla fall kommit fram till detta än så länge:

```
SELECT TOP 3 [några fält] FROM tblUser WHERE Month(userBirthday) >= Month(Date()) ORDER BY Month(userBirthday)
```

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

## #2 — Peter S, 2006-02-22T18:11Z

```
select top 3
       [några fält]
  from tblUser
 where ( month(userBirthday) = month(Date())
          and
         day(userBirthday) >= day(Date()))
    or month(userBirthday) > month(Date())
order
    by userBirthday
```

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

## #3 — LarsG, 2006-02-22T18:17Z

Flyttas från ASP

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

## #4 — LeonL, 2006-02-22T18:41Z

Peter S:
Din kod tar inte hänsyn till att årtalen är olika för de olika användarna, så de äldsta hamnar alltid först.

Jag kom dock på hur man skulle göra. Min SQL-fråga funkade ju redan... det var bara så att den inte kunde sortera efter dagar efter att ha sorterat efter månaderna, så följande kod gjorde susen. :)

```
... ORDER BY Month(userBirthday), Day(userBirthday)
```

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/142850-hämta-de-tre-närmaste-födelsedagarna
