如果今天过生日,如何从表格中选择记录?

Vin*_*ino 0 sql sql-server dob

如果用户的生日是今天,我想从用户表中获取名称.

用户表

name  |   date of birth
------+-----------------
name1 |   20/05/1991
name2 |   05/01/1995
name3 |   05/01/1991
Run Code Online (Sandbox Code Playgroud)

如果我提供:05/01/2015作为参数,它应该显示name2name3.

任何人都可以告诉我通过date参数过滤结果所需的SQL查询.

Rad*_*hiu 7

此查询应该适合您:

SELECT NAME, [DATE OF BIRTH]
FROM TABLE
WHERE DAY([DATE OF BIRTH]) = DAY(GETDATE())
    AND MONTH([DATE OF BIRTH]) = MONTH(GETDATE())
Run Code Online (Sandbox Code Playgroud)

这是一个基于您的示例数据的查询的SQLFiddle.

我的初步答案是不正确的,因为如果你正在寻找今天有生日的人(因为生日不依赖于年份,而是月和日),它实际上正在寻找相同的日期GETDATE()与之间的DATE OF BIRTH不正确.

  • @Vino这是你应该问的另一个问题.如果这个答案对你有用,那么请upvote /标记为正确,并在StackOverflow上为其他答案做同样的事情,如果他们设法帮助你的话. (4认同)