Opmerking:ik heb dit aangepast om een, naar mijn mening, belangrijke bug te verhelpen. De momenteel geposte versie werkt voor mij.
Dit zou moeten werken nadat u de veld- en tabelnamen hebt aangepast zodat ze overeenkomen met uw database.
SELECT
BRTHDATE AS BIRTHDAY
,FLOOR(DATEDIFF(dd,EMP.BRTHDATE,GETDATE()) / 365.25) AS AGE_NOW
,FLOOR(DATEDIFF(dd,EMP.BRTHDATE,GETDATE()+7) / 365.25) AS AGE_ONE_WEEK_FROM_NOW
FROM
"Database name".dbo.EMPLOYEES EMP
WHERE 1 = (FLOOR(DATEDIFF(dd,EMP.BRTHDATE,GETDATE()+7) / 365.25))
-
(FLOOR(DATEDIFF(dd,EMP.BRTHDATE,GETDATE()) / 365.25))
Kortom, het haalt het aantal dagen vanaf hun verjaardag tot nu en deelt dat door 365 (om afrondingsproblemen te voorkomen die optreden wanneer u rechtstreeks naar jaren converteert).
Dan krijgt het # dagen vanaf hun verjaardag tot een week vanaf nu, en deelt dat door 365 om hun leeftijd vanaf nu over een week te krijgen.
Als hun verjaardag binnen een week valt, is het verschil tussen die twee waarden 1. Dus het retourneert al die records.