任何人都可以告诉我如何获得今天过生日的员工名单....
谢谢, 维沙尔
答案 0 :(得分:16)
SELECT *
FROM Employees
WHERE DATEPART(d, DateOfBirth) = DATEPART(d, GETDATE())
AND DATEPART(m, DateOfBirth) = DATEPART(m, GETDATE())
答案 1 :(得分:1)
理想情况下,有关数据源结构的更多信息会有所帮助,但提供员工记录的简单答案有D.O.B.字段是将此日期和月份与查询的where子句中的当前系统日期进行比较。
以下几行:
select * from wherever
where
....
(
datepart(d, EmployeeDOB) = datepart(d, getdate()) and
datepart(m, EmployeeDOB) = datepart(m, getdate())
)
.....
答案 2 :(得分:0)
WHERE
今天员工生日的一个月和一天的月份和日期(显然)。更具体的说明需要更多的输入。
答案 3 :(得分:0)
您可以这样做:
select e.name from employeeTable e
where right(e.birthday) = right(convert(varchar(8), getdate(), 112), 4)
或
select e.name from employeeTable e
where datepart(d, e.birthday) = datepart(d, getdate())
and datepart(m, e.birthday) = datepart(m, getdate())
答案 4 :(得分:0)
虽然这种情况要长得多,但它确实可以避免扫描整个表格以寻找匹配。
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))