首页 > 解决方案 > 在 SQL 中使用 Sysdate 查找员工年龄

问题描述

我刚开始学习 SQL,我对 sysdate 函数有疑问。我们得到一张带有emp_dob(员工出生日期)的表格,我们需要找到他们的年龄。

解决方案是

SELECT emp_fname "First Name"
     , emp_lname "Last Name"
     , round ((sysdate-emp_dob)/365,2) "Employee Age"
  from emp
 order 
    by "Employee Age" desc;

我的问题是为什么它必须除以 365 才能找到年龄。

为什么不能只是 sysdate - 出生日期。

谢谢

标签: sql

解决方案


日期在内部存储为浮点数,其中整数部分报告天数,小数部分报告一天内的时间。从or
中减去出生日期(取决于您使用的数据库),您就可以得到相关人员的生活天数。 除以 365 就可以得到它的年龄。NOW()SYSDATE

当然,使用该功能DATEDIFF会更好,因为在这种情况下您不依赖于内部实现。


推荐阅读