sql >> Database >  >> RDS >> Sqlserver

SQL Select Aankomende Verjaardagen

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.



  1. 6 manieren om dubbele rijen in SQLite te selecteren

  2. Hoe de tabel bij te werken met activeandroid na het toevoegen van een nieuwe kolom

  3. Verschillen tussen INDEX, PRIMAIRE, UNIEKE, FULLTEXT in MySQL?

  4. Automatisch SQLite-queryresultaten openen in een teksteditor