尝试从表中的日期获取年龄,但不起作用错误“ora-00923:from关键字未在预期位置找到”

1l5u6lss  于 2021-08-01  发布在  Java
关注(0)|答案(2)|浏览(379)

我尝试运行并从表中的日期获取年龄,但最终出现错误“ora-00923:from关键字not found where expected”。
这是我第一次参加apex oracle
装运台

ship_id   ship_date

SEL0001   12/6/2015
SEL0002   01/5/2016

sql代码

select ship_id, YEAR(ship_date) AS [BirthDate],
YEAR(GETDATE()) AS [ThisYear],
YEAR(GETDATE()) -YEAR(ship_date) AS Age
from shipping

预期产量

ship_id   BirthDate    ThisYear   Age

SEL0001   12/6/2015     2020       5
SEL0002   01/5/2016     2020       4

有没有办法知道年龄?我试着使用datediff,但我不是这方面的Maven。谢谢您。

lyr7nygr

lyr7nygr1#

你应该使用 extract 在甲骨文中,这里是演示。

select 
  ship_id, 
  TO_CHAR(ship_date , 'MM/DD/YYYY') as BirthDate,
  extract(YEAR from sysdate) as ThisYear,
  extract(YEAR from sysdate) -  extract(YEAR from ship_date) as Age
from shipping

输出:


* ---------------------------------------*

| SHIP_ID   BIRTHDATE     THISYEAR  AGE |

* ---------------------------------------*

| SEL0001   12/06/2015      2020     5  |
| SEL0002   01/05/2016      2020     4  |

* ---------------------------------------*
ltqd579y

ltqd579y2#

使用 extract 要获取年或月值,对于年龄,请使用“months\u between”获取月数,然后计算年龄。

select ship_id,
            to_char(ship_date,'DD/MM/YYYY') "BirthDate",
            extract(year from SYSDATE) ThisYear, 
             months_between(sydate,ship_date)/12 as Age_inYears
        from shipping

相关问题