sql - 在 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 - 出生日期。
谢谢
解决方案
日期在内部存储为浮点数,其中整数部分报告天数,小数部分报告一天内的时间。从or
中减去出生日期(取决于您使用的数据库),您就可以得到相关人员的生活天数。
除以 365 就可以得到它的年龄。NOW()
SYSDATE
当然,使用该功能DATEDIFF
会更好,因为在这种情况下您不依赖于内部实现。