You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SQL的WHERE子句中查询特定日期前出生的经理

解决DATE类型列查询1973年之前出生记录的问题

你的问题出在日期格式不完整:当你用'1973'和DATE类型的birth_date列比较时,数据库无法正确解析这个不完整的日期字符串,导致查询异常。

通用解决方案(适用于大多数数据库)

直接使用完整的日期常量'1973-01-01'进行比较,明确筛选出所有早于1973年1月1日的记录:

SELECT birth_date FROM managers
WHERE birth_date < '1973-01-01';

可选方案(利用日期函数)

如果你的数据库支持提取年份的函数,也可以这样写:

MySQL示例

SELECT birth_date FROM managers
WHERE YEAR(birth_date) < 1973;

PostgreSQL示例

SELECT birth_date FROM managers
WHERE EXTRACT(YEAR FROM birth_date) < 1973;

⚠️ 注意:使用函数处理列值可能会导致该列的索引失效,如果birth_date有索引,优先选择第一种直接比较日期常量的写法,性能更优。

内容的提问来源于stack exchange,提问作者Colten Unger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 20:30:56