SQL -Abfrage, um zu überprüfen, ob heute der Geburtstag des Mitarbeiters ist [geschlossen
Frage
Kann mir jemand sagen, wie ich die Liste eines Mitarbeiters bekommt, der heute seine Geburtstage hat?
Danke, Vishal
Lösung
SELECT *
FROM Employees
WHERE DATEPART(d, DateOfBirth) = DATEPART(d, GETDATE())
AND DATEPART(m, DateOfBirth) = DATEPART(m, GETDATE())
Andere Tipps
Im Idealfall würden ein bisschen mehr Informationen zur Struktur Ihrer Datenquellen helfen, aber eine einfache Antwort, die Ihren Mitarbeiteraufzeichnungen ein DOB -Feld enthält, wäre, den Tag und Monat mit dem aktuellen Systemdatum in der Klausel Ihrer Abfrage zu vergleichen.
Etwas in den folgenden Zeilen:
select * from wherever
where
....
(
datepart(d, EmployeeDOB) = datepart(d, getdate()) and
datepart(m, EmployeeDOB) = datepart(m, getdate())
)
.....
WHERE
Monat und Tag des Geburtstagsspiels des Mitarbeiters heute Monat und Tag (offensichtlich). Spezifische Anweisungen würden mehr Eingaben erfordern.
Sie können so etwas tun:
select e.name from employeeTable e
where right(e.birthday) = right(convert(varchar(8), getdate(), 112), 4)
oder
select e.name from employeeTable e
where datepart(d, e.birthday) = datepart(d, getdate())
and datepart(m, e.birthday) = datepart(m, getdate())
Obwohl dies viel langwieriger ist, muss die gesamte Tabelle nach Übereinstimmungen scannen.
WITH
a_century AS
(
SELECT 1 AS year
UNION ALL
SELECT year * 2 + 0 AS year FROM a_century WHERE year < 64
UNION ALL
SELECT year * 2 + 1 AS year FROM a_century WHERE year < 64
)
SELECT
*
FROM
yourTable
INNER JOIN
a_century
ON yourTable.birthday = DATEADD(year, -a_century.year, DATEADD(day, DATEDIFF(day, 0, getDate()), 0))
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow