webForumDet fria alternativet

Jämförelse, år

2 svar · 266 visningar · startad av Moppan

MoppanMedlem sedan okt. 200257 inlägg
#1

Hallå!

Jag vill kolla om en person har rapporterat tid under ett år och testar därför ex om året är >2001 och <2002. Problemet är att jag tar emot det valda året som en parameter av typen smalldatetime. Jag vill sedan få ut året som kommer därefter (genom att plussa på ett, eller något annat smart). Hur ska jag göra med konverteringar och dyl. för att det ska fungera??!

Tips???
Koden ser just nu ut såhär:

CREATE PROCEDURE spTime_GetAllPersonsByDate
@Date smalldatetime
AS

SELECT DISTINCT P.PersonID, P.FirstName, P.LastName
FROM TimePerDayAndProject TP
INNER JOIN Person P ON P.PersonID = TP.PersonID
WHERE datepart(yyyy, TP.DateField) >= @Date AND datepart(yyyy, DateField) <= @Date + 1
ORDER BY FirstName

GO

MoppanMedlem sedan okt. 200257 inlägg
#2

Jag behöver ingen hjälp...

Gjorde bara om så att jag tar emot året som en integer istället.. Förstår inte hur man kan göra en jämförelse mot datepart(yyyy, DateField) som är av typen smalldatetime dock..

men men.....

LarsGMedlem sedan dec. 200012 464 inlägg
#3

Funktionen datepart returnerar ett numeriskt värde så det går bra att jämföra. Om du vill lägga till ett år till ett datum så får du använda funktionen dateadd.

127 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)