Sql 如果生日是今天,如何从表中选择记录?
如果用户的生日是今天,我想从用户表中获取名称 用户表Sql 如果生日是今天,如何从表中选择记录?,sql,sql-server,dob,Sql,Sql Server,Dob,如果用户的生日是今天,我想从用户表中获取名称 用户表 name | date of birth ------+----------------- name1 | 20/05/1991 name2 | 05/01/1995 name3 | 05/01/1991 如果我提供:05/01/2015作为参数,它应该显示name2和name3 谁能告诉我按日期参数筛选结果所需的SQL查询。此查询适用于您: SELECT NAME, [DATE OF BIRTH] FROM TABLE
name | date of birth
------+-----------------
name1 | 20/05/1991
name2 | 05/01/1995
name3 | 05/01/1991
如果我提供:05/01/2015
作为参数,它应该显示name2
和name3
谁能告诉我按日期参数筛选结果所需的SQL查询。此查询适用于您:
SELECT NAME, [DATE OF BIRTH]
FROM TABLE
WHERE DAY([DATE OF BIRTH]) = DAY(GETDATE())
AND MONTH([DATE OF BIRTH]) = MONTH(GETDATE())
下面是一个基于示例数据的查询示例
我最初的回答是不正确的,因为它实际上是在寻找GETDATE()
和出生日期之间的相同日期,如果您要寻找今天有生日的人,这是不正确的(因为生日不取决于年份,而是取决于月份和日期)
要获取一系列日期的列表,请执行以下操作:
declare @StartDate DATE
declare @EndDate DATE
SELECT [DATE OF BIRTH], Name
FROM [TABLE]
WHERE
datepart(dd,[DATE OF BIRTH]) between datepart(dd,@StartDate)
AND datepart(dd,@EndDate)
AND datepart(mm,[DATE OF BIRTH]) between datepart(mm,@StartDate)
AND datepart(mm,@EndDate)
“出生日期”列的数据类型是什么?@praveen prasannan-datetime您希望如何处理非闰年2月29日出生日期的用户?忽视他们?或者包括在2月28日或3月1日?还是别的什么?很好用。在给定范围内得到生日清单有什么想法吗?@Vino这是你应该问的另一个问题。如果此答案对您有效,请将其升级/标记为正确,并对StackOverflow上的其他答案(如果他们能够帮助您)执行相同操作。要获取日期范围,您应使用BETWEEN运算符。但正如拉杜所说,这是一个全新的问题。谢谢大家的评论,这对我也很有用!
declare @StartDate DATE
declare @EndDate DATE
SELECT [DATE OF BIRTH], Name
FROM [TABLE]
WHERE
datepart(dd,[DATE OF BIRTH]) between datepart(dd,@StartDate)
AND datepart(dd,@EndDate)
AND datepart(mm,[DATE OF BIRTH]) between datepart(mm,@StartDate)
AND datepart(mm,@EndDate)