日期在单独的字段中

时间:2018-05-31 15:30:57

标签: database oracle

我是从Oracle SQL开发人员中的表中提取的,其中包含以下字段:Id编号,年份,日期和月份。 YEAR,DAY,MONTH字段是NUMBER数据类型。

我想从此表中提取数据,其中年份介于sysdate和5年之前。我有一个问题,这些字段是一个数字字段,它们在不同的列中。有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:3)

将一个日期的单个组件存储在不同的列中是一个糟糕的设计(我担心你会很快发现问题)。

试试这个:

WHERE TO_DATE(YEAR||'-'||MONTH||'-'||DAY 'YYYY-MM-DD') BETWEEN ADD_MONTHS(SYSDATE, -5*12) AND SYSDATE

答案 1 :(得分:1)

SELECT *
FROM YOUR_TABLE
WHERE TO_NUMBER(YOUR_TABLE."YEAR")>=TO_NUMBER(TO_CHAR(SYSDATE - INTERVAL '5' YEAR, 'YYYY'));