Como saber se uma data qualquer pertence ao 1º semestre?

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
Avatar do usuário
Porva
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 342
Registrado em: Seg, 29 Jan 2007 7:36 am
Localização: São Paulo/SP
Rafael S. Nunes
São Paulo/SP

pessoal, beleza?

preciso fazer um select onde se uma data estiver entre o período 01/01 (de qualquer ano) e 31/05 (de qualquer ano), eu retornarei um indicador '1º semestre'

e entre 01/06 a 31/12 (de qualquer ano) = '2º semestre'.
Avatar do usuário
adrianoturbo
Moderador
Moderador
Mensagens: 393
Registrado em: Qui, 20 Mar 2008 4:09 pm
Localização: Brasília
Adriano Alves
---Para cada problema dificil existe uma solução simples.----

Brother,converte o mês em numéro com a function to_number ,na verdade vai precisar da function to_char também para fazer a conversão em string e depois em número ,na sequência coloque os filtros e seja feliz ,seguem os códigos de como fazer .

Selecionar tudo


select  to_number(to_char(campo_data ,'mm') mês from qualquer_coisa 
where  mês <=6 --- primeiro semestre

Selecionar tudo


select  to_number(to_char(campo_data ,'mm') mês from qualquer_coisa 
where  mês >6 --- segundo semestre semestre

Avatar do usuário
Porva
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 342
Registrado em: Seg, 29 Jan 2007 7:36 am
Localização: São Paulo/SP
Rafael S. Nunes
São Paulo/SP

obrigado Adriano,

a solução é até simples mesmo, eu não me liguei, também vi uma outra função aqui no Fórum que achei interessante, a função Extract:

Selecionar tudo

SELECT EXTRACT(MONTH FROM SYSDATE) mês FROM dual;

dá pra usar para dias e anos também:

Selecionar tudo

SELECT EXTRACT(DAY FROM SYSDATE) mês FROM dual;
SELECT EXTRACT(YEAR FROM SYSDATE) mês FROM dual;
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 3 visitantes