Oracle SQL中的截断

xpcnnkqh  于 2022-11-28  发布在  Oracle
关注(0)|答案(2)|浏览(189)

我尝试在SQL Oracle中使用TRUNC,但不起作用。我犯了错误?
选择TRUNC(调用日日期-出生日期)/ 365作为员工年龄,
从双

yfjy0ee7

yfjy0ee71#

如果要计算两个日期之间的天数,然后除以365,再向下舍入,可以使用:

SELECT TRUNC(
         (SYSDATE - BIRTHDATE)
         / 365
       ) AS EMP_AGE
FROM   employees;

一年中并不总是有365天,所以你的计算会有点错误。
使用以下公式计算月数会更准确:

SELECT TRUNC(
         MONTHS_BETWEEN(SYSDATE, birthdate)
         / 12
       ) AS emp_age
FROM   employees;
91zkwejq

91zkwejq2#

请参阅下面的示例来完成您要执行的操作。只需将YOUR_TABLE替换为所需的表,并将YOUR_BIRTHDAY_COLUMN替换为查询表中包含出生日期的列的名称。

select FLOOR((trunc(sysdate) - (trunc(YOUR_BIRTHDAY_COLUMN)))/365) as AGE from YOUR_TABLE;

相关问题