Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从MS Access表筛选最近3天的生日记录_Sql_Ms Access - Fatal编程技术网

Sql 从MS Access表筛选最近3天的生日记录

Sql 从MS Access表筛选最近3天的生日记录,sql,ms-access,Sql,Ms Access,我正试图根据MS Access中tb\u Employee表中的birth\u date列,筛选其生日在过去3天内(包括今天)的员工记录。 我知道我可以根据日期获得最新的3天记录: Select * from tb_Employee where ([Date_Column] >= NOW()-3 但在我的例子中,birth\u date列中的日期是过去一年(比如1975年1月18日)。请帮我修一下 例如: 如果你想要那些生日在过去三天的人,这里有一种方法: where dateseria

我正试图根据MS Access中
tb\u Employee
表中的
birth\u date
列,筛选其生日在过去3天内(包括今天)的员工记录。 我知道我可以根据日期获得最新的3天记录:

Select * from tb_Employee where ([Date_Column] >= NOW()-3
但在我的例子中,
birth\u date
列中的日期是过去一年(比如1975年1月18日)。请帮我修一下

例如:

如果你想要那些生日在过去三天的人,这里有一种方法:

where dateserial(year(date()), month(dob), day(dob)) in
        (
         date(), dateadd("d", -1, date()), dateadd("d", -2, "date"),
         dateadd("y", 1, dateadd("d", -1, date())), 
         dateadd("y", 1, dateadd("d", -2, "date"))
        )
最后两个是12月30日和12月31日。

我建议:

select * from tb_employee 
where 
    (dateserial(year(date()),month(birthday_date),day(birthday_date)) between date()-3 and date()) or
    (dateserial(year(date())-1,month(birthday_date),day(birthday_date)) between date()-3 and date())
简而言之,此查询说明:


“选择今年生日在过去3天到今天之间,或去年生日在过去3天到今天之间的员工”

过去一年中
18/1/1975
情况如何?样本数据和期望的结果会有所帮助。@GordonLinoff我想他们的意思是“过去一年”