---
title: "Hämta poster inom ett tidsintervall"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/171394-hämta-poster-inom-ett-tidsintervall"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "devotion"
published: "2008-05-11T19:36:44.000Z"
updated: "2008-05-13T06:07:10.000Z"
replies: 4
views: 723
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/171394-hämta-poster-inom-ett-tidsintervall"
---

# Hämta poster inom ett tidsintervall

## #1 — devotion, 2008-05-11T19:36Z

Hej! :)  

Jag har en tabell; tblTime som bla innehåller kolumnerna StartDate och StopDate.

Jag skulle vilja göra på följande sätt:

Hämta alla poster inom ett visst datumintervall där tiderna ligger inom ett vist tidsintervall.

Tex:

> Hämta alla tider som är utförda mellan kl 07:00 och 23:00 för maj månad

Grunden har jag enligt:

```
sSQL =" SELECT COALESCE(SUM(tblTime.[Time]),0) AS Hours" _
	& " FROM tblcustomer" _
	& " INNER JOIN tblTask" _
	& " ON tblCustomer.[Nr] = tblTask.CustomerNr" _
	& " LEFT JOIN tblTime" _
	& " ON tblTask.[Id] = tblTime.TaskId" _
	& " WHERE tblCustomer.Category = '" & sWorkGroupName & "'" _
	& " And tblTime.StartDate >='" & tmStartDate & "'" _
	& " And tblTime.StartDate < '" & tmStopDate & "'" _
	& " And [tblTime].[TimeTypeId] LIKE '0'" _
```

Denna kod hämtar alla tider inom ett visst datum intervall

Hur får man till det?

Mvh
Henrik

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

## #2 — Brimba, 2008-05-12T05:52Z

Detta kanske funkar?

```
...
	WHERE
		YEAR(startdate) = tmYear
		AND MONTH(startdate) = tmMonth
		AND DATEPART(hh, startdate) >= tmStartHour
		AND DATEPART(hh, startdate) < tmStopHour
```

tmYear skall exempelvis vara 2008, tmMonth skall vara 5 och tmStartHour skall vara 7 och tmStopHour 23.

Då får du med alla poster för en viss månad och år som postats mellan 07:00 och 22:59:59. Du får alltså inte med 23:00.

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

## #3 — devotion, 2008-05-12T18:31Z

Ok, nu har jag testat så här:

```
SELECT COALESCE(SUM(tblTime.[Time]),0) AS Hours FROM tblcustomer 
INNER JOIN tblTask ON tblCustomer.[Nr] = tblTask.CustomerNr 
LEFT JOIN tblTime ON tblTask.[Id] = tblTime.TaskId 
LEFT JOIN tblTimeType ON tblTimeType.[Id] = tblTime.TimeTypeId 
WHERE tblCustomer.Category = 'Sigtuna' 
And tblTime.StartDate >='2008-05-01 00:00:00.000' '
And tblTime.StartDate < '2008-05-31 23:59:59.999' 
And DATEPART(hh, tblTime.StartDate) >= '16' 
And DATEPART(hh, tblTime.StartDate) < '23' 
And [tblTimeType].[Name] LIKE '01. Personlig omvårdnad'
```

Det "verkar" ju fungera...

Men...

Hur gör jag omd et ska vara 16:30, vilket det ska vara... (vilket jag inte skrev i första inlägget...)

och, måste man tänka på något när det gäller WHERE-delen. Typ paranteser...

Mvh
Henrik

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

## #4 — LarsG, 2008-05-12T22:14Z

```
where convert(varchar(8),startDate,8) between '16:30:00' and '23:00:00'
```

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

## #5 — devotion, 2008-05-13T06:07Z

Funkish perfektos... :)

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/171394-hämta-poster-inom-ett-tidsintervall
