Aprenda PL/SQL

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
  

Mensagemem Sex, 02 Set 2016 4:54 pm

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'.
Porva
Localização: São Paulo/SP

Rafael S. Nunes
São Paulo/SP

Mensagemem Sex, 02 Set 2016 6:08 pm

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 .

Código: Selecionar todos

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



Código: Selecionar todos

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

adrianoturbo
Localização: Brasília

Adriano Alves
---Para cada problema dificil existe uma solução simples.----

Mensagemem Seg, 05 Set 2016 7:51 am

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:

Código: Selecionar todos
SELECT EXTRACT(MONTH FROM SYSDATE) mês FROM dual;



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

Código: Selecionar todos
SELECT EXTRACT(DAY FROM SYSDATE) mês FROM dual;
SELECT EXTRACT(YEAR FROM SYSDATE) mês FROM dual;
Porva
Localização: São Paulo/SP

Rafael S. Nunes
São Paulo/SP



Voltar para SQL

Quem está online

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