Uma duvida ,
pois tenho em uma tabela o campo ano mais semana (YYYYMMW) onde :
campo
2008012
2008014
Minha duvida como converter ao contrario pegar esse campo e
converter para date …
Se alguém puder me ajudar gradeceria…
abs
Uma duvida ,
pois tenho em uma tabela o campo ano mais semana (YYYYMMW) onde :
2008012
2008014
Minha duvida como converter ao contrario pegar esse campo e
converter para date …
Se alguém puder me ajudar gradeceria…
abs
A coluna na tabela está com este formato (portanto a coluna deve ser do tipo VARCHAR2) ou você está colocando uma máscara (SELECT TO_CHAR(data, ‘YYYYMMW’) FROM tabela) quando recupera o dado da tabela?
O meu problema é oseguinte tenho na tabela no formato (YYYYMMW) e quero converter para Date…
Exemplo:
select to_date(kk.cd_periodo_semana_calend,‘yyyymmw’) from dual kk
mas da o erro :
ora-01820 codigo formato nao pode ser exibido no formato de entrada de data
De novo: qual o TIPO da coluna na tabela? VARCHAR2, DATE, TIMESTAMP, NUMBER, etc
a coluna é :
CD_PERIODO_SEMANA_CALEND NUMBER(7)
Talvez um simples SimpleDateFormat.parse funcione. Mas a questao é: vai virar um Date com que dia da semana? primeiro? ultimo?
isso estou tentando fazer no select não chegou ainda em uma classe (objeto)
estou tentando resolver isso no banco de dados …e não no java …???
Achei um jeito
onde o campo está definido assim
7 posições:
1 a 4 = ano
5 a 6 = mes
7 = semana
e fiz o codigo abaixo se servir pra alguém
abs
select case
WHEN substr( CD_PERIODO_SEMANA_CALEND,7,7)= 1 then
'01'||substr(CD_PERIODO_SEMANA_CALEND,5,6)||substr(CD_PERIODO_SEMANA_CALEND,1,4)
WHEN substr( CD_PERIODO_SEMANA_CALEND,7,7)= 2 then
'08'||substr(CD_PERIODO_SEMANA_CALEND,5,6)||substr(CD_PERIODO_SEMANA_CALEND,1,4)
WHEN substr( CD_PERIODO_SEMANA_CALEND,7,7)= 3 then
'15'||substr(CD_PERIODO_SEMANA_CALEND,5,6)||substr(CD_PERIODO_SEMANA_CALEND,1,4)
WHEN substr( CD_PERIODO_SEMANA_CALEND,7,7)= 4 then
'22'||substr(CD_PERIODO_SEMANA_CALEND,5,6)||substr(CD_PERIODO_SEMANA_CALEND,1,4)
else
'29'||substr(CD_PERIODO_SEMANA_CALEND,5,6)||substr(CD_PERIODO_SEMANA_CALEND,1,4)
end nova_data
from TB_