sql dateiff比较年龄和雇用日期

问题描述 投票:0回答:1

第一次使用Stack Overflow,所有课程都在线上抛出,在线课程让我感到恐惧。

问题很简单,我需要收集有关使用datediff成立公司时年龄不超过35岁的员工的信息。

我的代码看起来像这样

选择EmployeeID,FirstName,LastName,BirthDate,HireDate,datediff(year,BirthDate,HireDate)年龄来自员工年龄<= 35;

不使用“ where”,它将发布人们开始时的年龄。我现在尝试显示我创建的“年龄”列,以发布小于或等于35岁的所有人。但是,我随着年龄的增长出现语法错误。显然,它在sql数据库中不存在。任何帮助,将不胜感激。

sql datediff
1个回答
0
投票

where子句不能引用在select子句中定义的别名(后者在after前者中执行)。

您需要在两个子句中都重复该表达式(或使用派生表):

select 
    e.*, 
    datediff(year, BirthDate,HireDate) Age 
from employees e
where datediff(year, BirthDate,HireDate) <= 35
© www.soinside.com 2019 - 2024. All rights reserved.