查询以更改季度时间戳格式

时间:2018-02-05 10:00:42

标签: sql oracle

我有一个varchar2(2000)字节列,用于存储数据为' Q2 FY07'或者' 2008年第3季度'我现在需要这种格式的数据 - ' 2007Q2' OR' 2008Q3' 。谁能帮助我,我应该像在oracle中一样查询sata。

1 个答案:

答案 0 :(得分:0)

首先(和往常一样),你不应该将DATE值存储为VARCHAR,即使你只需要四分之一。

您可以执行以下操作。首先将字符串转换为DATE,例如

SELECT
    TO_DATE(REGEXP_SUBSTR('Q2 FY07', '\d{2}$')||'-'||REGEXP_SUBSTR('Q2 FY07','\d')*3, 'RR-MM')
FROM ...

然后您可以根据需要更改输出格式,即

TO_CHAR(
    TO_DATE(REGEXP_SUBSTR('Q2 FY07', '\d{2}$')||'-'||REGEXP_SUBSTR('Q2 FY07','\d')*3, 'RR-MM')
    , 'YYYY"Q"Q')