Sql server 显示1994年雇佣的每位员工的姓氏和雇佣日期
我的代码有问题。我想显示1994年雇佣的每位员工的Sql server 显示1994年雇佣的每位员工的姓氏和雇佣日期,sql-server,Sql Server,我的代码有问题。我想显示1994年雇佣的每位员工的姓和雇佣日期 我尝试使用这些代码执行,但它不起作用,姓氏和雇佣日期之间的结果为空 这是我的表格和代码: CREATE TABLE EMPLOYEES ( EMPLOYEE_ID INT, FIRST_NAME VARCHAR(20), LAST_NAME VARCHAR(25), EMAIL VARCHAR(25), PHONE_NUMBER VARCHAR(20), HI
姓
和雇佣日期
我尝试使用这些代码执行,但它不起作用,姓氏
和雇佣日期
之间的结果为空
这是我的表格和代码:
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
这是我的桌子的图像:
试试这个:
SELECT last_name, hire_date FROM employees
WHERE year(hire_date) = 1994
但是,函数的使用将禁止查询优化器使用hire\u date
列上可用的任何索引
因此,这应该更有效:
SELECT last_name, hire_date FROM employees
WHERE hire_date >= '1994-01-01' and hire_date < '1995-01-01'
从员工处选择姓氏、雇用日期
其中雇用日期>='1994-01-01'和雇用日期<'1995-01-01'
试试这个:
SELECT last_name, hire_date FROM employees
WHERE year(hire_date) = 1994
但是,函数的使用将禁止查询优化器使用hire\u date
列上可用的任何索引
因此,这应该更有效:
SELECT last_name, hire_date FROM employees
WHERE hire_date >= '1994-01-01' and hire_date < '1995-01-01'
从员工处选择姓氏、雇用日期
其中雇用日期>='1994-01-01'和雇用日期<'1995-01-01'
您不应该在这样的字段上使用函数,因为这样会导致不可搜索。正确的方法是雇佣日期>='19940101'和雇佣日期>'19950101'@GurV谢谢。这么多。put>=用于从1994年开始执行,put<用于确保它不会只执行1995年1994@JamesZ谢谢你,这真的很有效。这同样适用于选择姓氏、雇佣日期等员工,其中雇佣日期>='1994-01-01'和雇佣日期<'1995-01-01'您不应该在这样的字段上使用函数,这会导致不可搜索。正确的方法是雇佣日期>='19940101'和雇佣日期>'19950101'@GurV谢谢。这么多。put>=用于从1994年开始执行,put<用于确保它不会只执行1995年1994@JamesZ谢谢你,这真的很有效。同样,在输入诸如“选择姓氏”、“雇用日期”和“雇用日期”时,如果雇员的雇用日期>='1994-01-01'和“雇用日期”<'1995-01-01',则datediff函数实际上是问谁在1904年前被雇用,datediff函数实际上是,问谁是1994年前受雇的