sql - 如何回答这个问题:列出 1986 年聘用的员工
问题描述
我正在做某事,这是我需要做的最后一件事。我已经尝试了一切
SELECT first_name, last_name, hire_date
FROM employees
WHERE hire_date LIKE '1986%';
我不断收到此错误消息。
提示:没有运算符与给定的名称和参数类型匹配。您可能需要添加显式类型转换。SQL 状态:42883 字符:73
请让我知道我做错了什么
谢谢
解决方案
将类似日期的数据类型视为字符串几乎从来都不是一个好主意(尽管一些 RDBMS 支持它)。
大多数 RDBMS 支持标准 sql 函数extract()
。您似乎正在使用 postgresql,也不例外,所以:
SELECT first_name, last_name, hire_date
FROM employees
WHERE extract(year from hire_date) = 1986
推荐阅读
- c++ - protobuf:new Prototype() 和 Prototype.Clear() 之间的区别
- java - 如何优化 Firebase 数据读取
- java - 我的 Maven 项目 VSCode 没有主清单属性错误
- c# - 由于 x64 UWP 中的 System.Drawing,ML.NET 1.4.0 预测引擎引发 PlatformNotSupportedException
- c - 如何在 python ctypes 中声明图像指针?
- git - 有命令说哪个分支是我们的还是他们的?
- flutter - 在列表中的级别之间拖放
- azure - 尝试在 Azure 中切换目录
- python - 是否可以根据某种属性自动生成 getter 和 setter 函数?
- jenkins - 詹金斯权限拒绝从詹金斯 CLI 访问 pem 密钥 - 尝试从詹金斯实例记录另一个实例