Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 显示1994年雇佣的每位员工的姓氏和雇佣日期_Sql Server - Fatal编程技术网

Sql server 显示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

我的代码有问题。我想显示1994年雇佣的每位员工的
雇佣日期

我尝试使用这些代码执行,但它不起作用,
姓氏
雇佣日期
之间的结果为空

这是我的表格和代码:

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年前受雇的