显示1994年雇用的每位员工的姓氏和雇用日期

时间:2017-01-22 17:10:03

标签: sql-server

我的代码有问题。我想显示1994年聘用的每位员工的LAST_NAMEHIRE_DATE

我尝试使用这些代码执行,但它不起作用,结果在LAST_NAMEHIRE_DATE之间为空。

这是我的表格和代码:

CREATE TABLE EMPLOYEES 
   (    
    EMPLOYEE_ID INT, 
    FIRST_NAME VARCHAR(20), 
    LAST_NAME VARCHAR(25), 
    EMAIL VARCHAR(25), 
    PHONE_NUMBER VARCHAR(20), 
    HIRE_DATE DATETIME, 
    JOB_ID VARCHAR(10), 
    SALARY DECIMAL(8,2), 
    COMMISSION_PCT DECIMAL(2,2), 
    MANAGER_ID INT, 
    DEPARTMENT_ID INT
   );


SELECT LAST_NAME, datepart(year,HIRE_DATE) FROM EMPLOYEES
WHERE datediff (YEAR,HIRE_DATE,GETDATE) = 1994

这是我桌子的图像: enter image description here

1 个答案:

答案 0 :(得分:2)

试试这个:

SELECT last_name, hire_date FROM employees
WHERE year(hire_date) = 1994
但是,使用函数会阻止查询优化器使用hire_date列上可用的任何索引。

所以,这应该会更好:

SELECT last_name, hire_date FROM employees
WHERE hire_date >= '1994-01-01' and hire_date < '1995-01-01'