Gegevens opslaan uit de database tussen twee data

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Koen Hollander

Koen Hollander

04/10/2016 09:21:15
Quote Anchor link
Hallo allemaal,

Ik heb een klein probleem met mijn SQL Query op een MS SQL Server waar ik gisteren full-time mijn nek over brak, zodoende kijk ik even rond of jullie mij kunnen helpen.

In de eerste instantie probeerde ik om een paar records op te halen uit de database, ik wil in kaart brengen hoe vaak computers worden gebruik in een klaslokaal tussen verschillende datums. Dus ik probeerde het eerst met de volgende query.

Quote:
SELECT
*
FROM
InlogLog as il
INNER JOIN
ComputerIdentity as ci
ON il.Computer = ci.Description
WHERE ci.Location
LIKE 'E18%'
AND ci.MakeModelID = 9
AND il.Datum = '2016-06-17 09:57:00.000'


Als ik deze query uitvoer krijg ik een foutmelding, dat de il.Datum die ik opgeef gezien wordt als een varchar, terwijl SQL een DATETIME verwacht. De foutmelding staat hieronder
Quote:
The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.


Toen ik zelf even zocht naar een manier om dit op te lossen kwam ik achter de DATEPART functie. Deze functie heb ik uitgeprobeerd, maar biedt niet de ondersteuning om records tussen verschillende datums te zoeken. Toen had ik dit voor elkaar gekregen:

Quote:
SELECT
*
FROM
InlogLog as il
INNER JOIN
ComputerIdentity as ci
ON il.Computer = ci.Description
WHERE ci.Location
LIKE 'E18%'
AND ci.MakeModelID = 9
AND DATEPART(YY,il.Datum) = 2016
AND DATEPART(MM,il.Datum) = 10
AND DATEPART(DD,il.Datum) = 03
ORDER BY il.Computer


Mijn kennis houdt hier verder op, heeft iemand van jullie een idee? (Hieronder staat een kleine ERD, hoe de relaties staan aangegeven)

Afbeelding

Alvast bedankt voor de hulp!

Toevoeging op 04/10/2016 10:23:04:

Reeds op kunnen lossen met

SELECT
COUNT(*)
FROM
InlogLog as il
INNER JOIN
ComputerIdentity as ci
ON il.Computer = ci.Description
WHERE ci.Location
LIKE 'E18%'
AND ci.MakeModelID = 9
AND il.Datum >= (GETDATE()-7) AND il.Datum <= GETDATE();
 
PHP hulp

PHP hulp

08/11/2024 19:45:33
 
Adoptive Solution

Adoptive Solution

04/10/2016 10:25:26
Quote Anchor link
Effe opnieuw.

DATAPART bestaat niet. Het is de omschrijving van het datum/tijddeel dat je wilt hebben.

ipv DATAPART() gebruik je YEAR(), MONTH() en DAY().

Datum- en tijdfuncties staan in de handleiding beschreven.
Gewijzigd op 04/10/2016 10:48:52 door Adoptive Solution
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.