我的代码有问题。我想显示1994年聘用的每位员工的LAST_NAME
和HIRE_DATE
我尝试使用这些代码执行,但它不起作用,结果在LAST_NAME
和HIRE_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
答案 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'