SQL Server查询1月出生程序员姓名及出生日期的实现方法问询
正确查询语句
SELECT PName, DOB FROM Programmer WHERE DATEPART(MONTH, DOB) = 1
常见错误说明
- DATEPART函数返回数值类型的月份值,直接用
=判断等于1即可,不需要使用LIKE运算符,这是最常见的写错原因 - 注意SQL Server对应表的姓名字段为
PName,不要直接复用Oracle语句里的NAME字段名 - 该写法不受数据库语言环境影响,兼容性最佳
可选参考写法
如果要对齐Oracle的月份字符串判断逻辑,可以使用DATENAME函数,注意需要匹配当前SQL Server实例的语言设置:
-- 英文语言环境适用 SELECT PName, DOB FROM Programmer WHERE DATENAME(MONTH, DOB) = 'January' -- 中文语言环境适用 SELECT PName, DOB FROM Programmer WHERE DATENAME(MONTH, DOB) = '一月'
匹配结果
对应你提供的样例数据,执行正确语句后会返回2条符合要求的记录:
| PName | DOB |
|---|---|
| JULIANA | 1960-01-31 00:00:00.000 |
| REBECCA | 1967-01-01 00:00:00.000 |
内容的提问来源于stack exchange,提问作者Reed
相关产品推荐
相关产品推荐

