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