【问题标题】:How to select students name born before a particular date in SQL Server如何在 SQL Server 中选择特定日期之前出生的学生姓名
【发布时间】:2020-10-20 15:09:21
【问题描述】:

我正在学习 SQL Server,并试图让所有在特定日期之前出生的学生,比如在 1996 年 3 月之前出生。

select * 
from Test 
where MONTH(hire_date) <= 03 and YEAR(hire_date) < 1996

这是我的查询,但它没有返回正确的结果。它主要检查理想的年份,它应该打印所有在 1996 年 3 月之前出生的学生。我怎样才能做到这一点?

【问题讨论】:

  • 你的表结构在哪里?哦,您真的将birth_date 存储在名为hire_date 的列中吗?

标签: .net sql-server


【解决方案1】:

在 SQL Server 中将字符串转换为日期的 100% 保证方式(在可能的范围内)是使用 YYYYMMDD,即 cast('19960301' as date)。或者,如果使用默认 COLLATION(或许多其他),则 cast('1996-03-01' as date) 有效。我更喜欢后者。根据您的示例,我认为您正在寻找类似的东西。

select * from Test where hire_date<=cast('1996-03-01' as date);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-19
    • 2017-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多