Bom dia a Todos,
Sou iniciante em PL/SQL estou fazendo uma integração entre dois sistemas e me deparei com a seguinte situação, a tabela de origem tem 3 colunas cujo os valores são: Código da Semana, Código do Mês e Código do Ano, eu já identifiquei o padrão de nomenclatura que são dados a cada código respectivamente, nesse sistema de destino.
Preciso saber se existe algo no ORACLE em que eu consiga descobrir qual a semana, a quinzena e o ano corrente, exemplo:
a data 08/01/2014 - está na quinzena 1, na semana 3 e no ano 2014
espero ter demonstrado o que eu preciso.
Agradeço desde já se alguém puder me ajudar!!
Como descobrir o A semana, O mês e a Quinzena corrente
-
- Rank: Estagiário Pleno
- Mensagens: 6
- Registrado em: Qui, 07 Nov 2013 7:10 am
- stcoutinho
- Moderador
- Mensagens: 850
- Registrado em: Qua, 11 Mai 2011 5:15 pm
- Localização: são Paulo - SP
Olá matheus.szmodic,
Você vai precisar trabalhar com as FUNCOES DE DATA do ORACLE para solucionar seu problema.
Existe um excelente artigo sobre este tema no ORACLE-BASE: http://www.oracle-base.com/articles/mis ... ervals.php. Ele está em inglês, mas descreve em bastante detalhes estas funções. Com certeza devem existir artigos sobre este em português, inclusive aqui no forum GLUFKE.
Também existe a documentação oficial da oracle. Consulte este link: http://docs.oracle.com/cd/E11882_01/ser ... m#CDEHIFJA
Vamos voltar ao seu problema. Consultando o arquivo acima, você vai precisar usar a função TO_CHAR(<data>,<formato/máscara>) para obter a informação que você precisa.
Na função TO_CHAR, você pode usar o seguintes "formato/máscara":
Vamos desenvolver uma querie que retorna tudo isso:
Abraços,
Sergio Coutinho
Você vai precisar trabalhar com as FUNCOES DE DATA do ORACLE para solucionar seu problema.
Existe um excelente artigo sobre este tema no ORACLE-BASE: http://www.oracle-base.com/articles/mis ... ervals.php. Ele está em inglês, mas descreve em bastante detalhes estas funções. Com certeza devem existir artigos sobre este em português, inclusive aqui no forum GLUFKE.
Também existe a documentação oficial da oracle. Consulte este link: http://docs.oracle.com/cd/E11882_01/ser ... m#CDEHIFJA
Vamos voltar ao seu problema. Consultando o arquivo acima, você vai precisar usar a função TO_CHAR(<data>,<formato/máscara>) para obter a informação que você precisa.
Na função TO_CHAR, você pode usar o seguintes "formato/máscara":
Agora, para identificar a quinzena do mês corrente, você precisaria estabelecer um critério: se o dia for menor que 16, então a data corresponde à primeira quinzena do mês, caso contrário à segunda.WW- WEEK -> Informa a semana do ano à qual a data pertence
YYYY - YEAR -> Informa o ano
DD - DAY -> dia da data
Vamos desenvolver uma querie que retorna tudo isso:
SELECT TO_CHAR(TO_DATE('08/11/2014','DD/MM/RRRR'),'DD/MM/RRRR') AS "DATA",
TO_CHAR(TO_DATE('08/11/2014','DD/MM/RRRR'),'WW') AS "SEMANA_ANO",
CASE
WHEN TO_NUMBER(TO_CHAR(TO_DATE('08/11/2014','DD/MM/RRRR'),'DD')) < 16
THEN 01
ELSE 02
END AS "QUINZENA_mês"
FROM DUAL;
SQL> DATA SE QUINZENA_mês
---------- -- ------------
08/11/2014 45 1
Sergio Coutinho
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 4 visitantes