我正在学习SQL Server,并试图让所有在特定日期之前出生的学生,比如1996年3月之前出生的学生。
select *
from Test
where MONTH(hire_date) <= 03 and YEAR(hire_date) < 1996这是我的查询,但它没有返回正确的结果。它主要是检查年份,理想情况下,它应该打印所有在1996年3月之前出生的学生。我如何才能做到这一点?
发布于 2020-10-20 23:20:06
在SQL Server中,将字符串转换为日期的100%保证方式(在可能的范围内)是使用YYYYMMDD,即cast('19960301‘as date)。或者,如果使用默认排序规则(或许多其他排序规则),则强制转换(‘1996-03-01’作为日期)有效。我更喜欢后者。根据您的示例,我认为您正在寻找类似这样的东西。
select * from Test where hire_date<=cast('1996-03-01' as date);https://stackoverflow.com/questions/64448054
复制相似问题