首页 > 解决方案 > 如何回答这个问题:列出 1986 年聘用的员工

问题描述

我正在做某事,这是我需要做的最后一件事。我已经尝试了一切

SELECT first_name, last_name, hire_date 
FROM employees
WHERE hire_date LIKE '1986%';

我不断收到此错误消息。

提示:没有运算符与给定的名称和参数类型匹配。您可能需要添加显式类型转换。SQL 状态:42883 字符:73

请让我知道我做错了什么

谢谢

标签: sqlpostgresqldateselectwhere-clause

解决方案


将类似日期的数据类型视为字符串几乎从来都不是一个好主意(尽管一些 RDBMS 支持它)。

大多数 RDBMS 支持标准 sql 函数extract()。您似乎正在使用 postgresql,也不例外,所以:

SELECT first_name, last_name, hire_date 
FROM employees
WHERE extract(year from hire_date) = 1986

推荐阅读