yyyy / yy到yyyy之类的日期(例如:2016/17至2016)

时间:2018-12-03 10:31:52

标签: sql oracle

我有一个表,该表的列为years,数据类似2016/172017/18

直到现在我有了以下代码:

SELECT champion 
FROM championship
WHERE season = (select to_char(sysdate - 730, 'yyyy') from dual)

例如,我想选择2年前的冠军。我怎样才能做到这一点?

我本来打算将2016/17年(这是一个varchar)拆分为仅获取2016年,但是如何?

这是一个“简单”的问题,因此,我想不使用函数或类似的东西。

2 个答案:

答案 0 :(得分:4)

您可以简单地使用substr:

set_data

c_str()SELECT champion FROM championship WHERE substr(season,1,4) = (to_char(sysdate - interval '2' YEAR,'YYYY') from dual) 好,例如:

to_char(sysdate - interval '2' YEAR,'YYYY')

答案 1 :(得分:0)

使用.ComputeSignature()年代替X509Chain。此外,如果您的季节始终为sysdate - 730

形式,则无需INTERVAL提取前4个字符
SUBSTR