如何从我的SQL中的HIRE_DATE中提取年份

时间:2017-05-21 13:47:05

标签: sql postgresql

我写过这个

SELECT last_name from EMPLOYEES where year(HIRE_DATE)='2000';

但它显示“无效的标识符年”。

3 个答案:

答案 0 :(得分:1)

如果您想获得一年的雇佣日期,您只需使用

<强>的PostgreSQL:

EXTRACT( YEAR FROM hire_date::DATE) = 2000

以及您必须使用的月份

EXTRACT( MONTH FROM hire_date::DATE) = 12

<强> MySQL的:

EXTRACT( YEAR FROM hire_date) = 2000

以及您必须使用的月份

EXTRACT( MONTH FROM hire_date) = 12

希望能帮到你。

  

更新注意事项:
原始问题是MySQL标记的,响应据说由原始海报工作,响应以PostgreSQL格式提供,怀疑OP应该标记问题为PostgreSQL而不是MySQL 。澄清了这个答案,以显示两种工作解决方案。

答案 1 :(得分:0)

不要提取年份。代替:

SELECT last_name 
FROM EMPLOYEES 
WHERE hire_date >= '2000-01-01' AND
      hire_date < '2001-01-01';

为什么呢?此版本可以利用索引。

答案 2 :(得分:0)

Extract(year from hire_date)

以上可以很好地获得年份,只需每年更换一个月即可。