---
title: "Hämta år + månad"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/85522-hämta-år-månad"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Asa"
published: "2003-09-08T11:36:24.000Z"
updated: "2003-09-08T14:13:36.000Z"
replies: 12
views: 370
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/85522-hämta-år-månad"
---

# Hämta år + månad

## #1 — Asa, 2003-09-08T11:36Z

Sparar en info och datum i databasen och vill hämta år och månad, Ex: 2003-05

Saken är att det kan finnas fler poster som har ex år 2003 och maj månad i datumet men vill då bara hämta den en gång! 

SKa även visas i tre kolumner så här:

2003-09---------2003-08---------2003-07
2003-06---------2003-05---------2003-04
2003-01---------2003-02---------2003-01

Ska använda detta på så sätt att om man klickar på 2003-09 så visas alla poster som har 2003-09 i datumet.

Hoppas någon förstår hur jag menar! Tack på förhand!

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

## #2 — Engine^, 2003-09-08T11:41Z

```
SELECT DISTINCT Year([i]dteTheDate[/i]), Month([i]dteTheDate[/i])
FROM tblDatabasen
GROUP BY Year([i]dteTheDate[/i]), Month([i]dteTheDate[/i])
```

Ungefär så du menar kanske?

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

## #3 — @nders, 2003-09-08T11:41Z

Ange vilken dbms du använder, så slipper vi gissa.

Access:

```
select distinct year(datumfältet), month(datumfältet) from tabellen order by 1 desc, 2 desc
```

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

## #4 — Asa, 2003-09-08T11:43Z

Både ock behövde jag veta för! Glömde skriva det!

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

## #5 — @nders, 2003-09-08T11:44Z

Både vad och vad :q

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

## #6 — Asa, 2003-09-08T11:45Z

Både för access och mysql!

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

## #7 — Asa, 2003-09-08T12:05Z

Varför hittar den inte datum i denna kod? Datum är text!

```
     <table border="0" cellspacing="5" width="100%">
       <%Set RS=Conn.Execute("select distinct year(datum), month(datum) from vimmel order by 1 desc, 2 desc")
       If RS.EOF Then%>
    	<tr>
     	  <td>Inga inlagda</td>
    	</tr>
       <%Else
         x=1
         Do Until RS.EOF
           If x=3 Then
             Response.Write "<tr>"
             x = 1
           End If%>
           <td align="center" nowrap><a href="vimmel.asp?month=<%=RS("Datum")%>">» <%=RS("Datum")%></a></td>
         <%x=x+1
         RS.MoveNext
         Loop
       End If%>
      </table>
```

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

## #8 — @nders, 2003-09-08T13:11Z

Datum ska inte vara text. Datum ska vara datum.

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

## #9 — Asa, 2003-09-08T13:50Z

Jag testade att ha det som datum men det funkade inte heller. Nåt måste vara fel i sql´n.

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

## #10 — @nders, 2003-09-08T13:57Z

Tja, varför den inte hittar datum? Du hämtar ju inte datum i din select-fråga.

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

## #11 — Asa, 2003-09-08T13:57Z

Jag gjorde så här och då funkade det!

```
      <table border="0" cellspacing="5" width="100%">
       <%Set RS=Conn.Execute("Select Distinct year(datum) as DT1, month(datum) as DT2 From vimmel Order By 1 desc, 2 desc")
       If RS.EOF Then%>
    	<tr>
     	  <td>Inga inlagda</td>
    	</tr>
       <%Else
       Numcols = 3
         x=1
         Do Until RS.EOF
           Response.Write "<tr>"
         For i=1 to Numcols
           Response.Write "<td width=""33%"">"
         If RS.EOF then
           Response.Write "&nbsp;"
         Else%>
           <a href="vimmel.asp?month=<%=RS("DT1")%>-<%If Len(RS("DT2")) = 1 Then%>0<%=RS("DT2")%><%Else%><%=RS("DT2")%><%End If%>">» <%=RS("DT1")%>-<%If Len(RS("DT2")) = 1 Then%>0<%=RS("DT2")%><%Else%><%=RS("DT2")%><%End If%></a>
         <%RS.MoveNext
         End If
           Response.Write "</td>"
         Next
         Kvar = NumCols-i
         For x = 1 To Kvar
           Response.Write "<td width=""33%"">&nbsp;</td>"
         Next
           Response.Write "</tr>"
         Loop
       End If%>
      </table>
```

Varför blire felmess när jag lägger in en ifsats vid Do Until...

```
If Request.QueryString("month") <> "" Then
  Do Until Vimmel.EOF
Else
  Do Until Vimmel.EOF or y=10
End If
```

Då får jag felmess:

```
Feltyp:
Kompileringsfel i Microsoft VBScript (0x800A03FB)
'Loop' förväntas.
```

Går det ej att ha en ifsats runt en Do ?

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

## #12 — mrblonde, 2003-09-08T14:06Z

```
If Request.QueryString("month") <> "" Then
  Do Until Vimmel.EOF
'kodstuff
loop

Else
  Do Until Vimmel.EOF or y=10
'kodstuff
loop
End If
```

Du måste avsluta din do med en loop

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

## #13 — Asa, 2003-09-08T14:13Z

Åhh va jobbigt! Men men!

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/85522-hämta-år-månad
