Bom dia pessoal.
Tenho uma duvida que acho ser braba preciso fazer um select que traga os domingos e feriados do ano de 2007.
tipo quero pegar todos os registro que aconteceram nos domingos e feriados de 2007 no oracle tenho o campo data que tem as datas normais
pessoal preciso muito dessa ajuda.
Duvida em select com feriádos e fins de semana
-
- Moderador
- Mensagens: 2016
- Registrado em: Qua, 12 Jan 2005 3:25 pm
- Localização: Araraquara - SP
Abraço,
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Brother,
Bom dia.
Pra pegar os sábados e domingos, tranquilo:
Daí, verifique se é sábado ou domingo neste retorno.
Quanto aos feriados, daí você tem que ter um cadastro em teu sistema, ok?
qualquer coisa, manda ai.
Bom dia.
Pra pegar os sábados e domingos, tranquilo:
SELECT TO_CHAR(SYSDATE,'DY') FROM DUAL;
Quanto aos feriados, daí você tem que ter um cadastro em teu sistema, ok?
qualquer coisa, manda ai.
-
- Rank: Analista Pleno
- Mensagens: 123
- Registrado em: Qua, 24 Out 2007 4:31 pm
- Localização: rio
Trevisolli
vamos por partes. primeiro o domingo
como posso em um select diferenciar tipo só trazer os domingos tipo
tentei assim mas num deu não tem como fazer??
vamos por partes. primeiro o domingo
como posso em um select diferenciar tipo só trazer os domingos tipo
SELECT TO_CHAR(u.dtinicio,'DY') FROM usuario u
where u.dtinicio like 'DOM';
-
- Moderador
- Mensagens: 2016
- Registrado em: Qua, 12 Jan 2005 3:25 pm
- Localização: Araraquara - SP
Abraço,
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Brother, vamos lá!
Pra pegar o sábado ou domingo (atente para a configuração do banco, no caso, aqui, em Inglês, portanto, Sábado = Sat (saturdary) e Domingo = Sun (Sunday), beleza?).
Para fazer os testes ai, troque a data de 13/04/2008, que é um Domingo, pela data que o usuário lhe fornecer, beleza?
Quanto aos feriados, você deve ter um cadastro no teu sistema, portanto, só aplicar a regra acima, quando for Sábado, Domingo ou um Feriado da tua tabela, beleza?
qualquer coisa, manda ai.
Pra pegar o sábado ou domingo (atente para a configuração do banco, no caso, aqui, em Inglês, portanto, Sábado = Sat (saturdary) e Domingo = Sun (Sunday), beleza?).
DECLARE
vdia VARCHAR2(03);
BEGIN
SELECT TO_CHAR (TO_DATE ('13/04/2008', 'dd/mm/rrrr'), 'DY')
INTO vdia
FROM DUAL;
IF vdia IN ('SAT','SUN')
THEN
raise_application_error(-20001, 'Data não permitida: '||vdia||' pois não é um dia útil.');
ELSE
dbms_output.put_line('Dia válido. '||vdia);
END IF;
END;
Quanto aos feriados, você deve ter um cadastro no teu sistema, portanto, só aplicar a regra acima, quando for Sábado, Domingo ou um Feriado da tua tabela, beleza?
qualquer coisa, manda ai.
-
- Rank: Analista Pleno
- Mensagens: 123
- Registrado em: Qua, 24 Out 2007 4:31 pm
- Localização: rio
Rapaz que legal mas olha só eu preciso disso pra um select não pra inserir nada em bd tipo o usuário entraria com um rang de datas tipo
ai o select só traz datas relacionadas ao domingo, minhas datas estão em português tipo quando eu fiz:
ele retornou
SAB
DOM
QUI
e assim por diante
u.dtinicio between '&data_INI' and '&data_fim'
SELECT TO_CHAR(u.dtinicio,'DY') FROM usuario u
SAB
DOM
QUI
e assim por diante
-
- Moderador
- Mensagens: 2016
- Registrado em: Qua, 12 Jan 2005 3:25 pm
- Localização: Araraquara - SP
Abraço,
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Brother,
Pelo que eu entendi, o usuário vai digitar um Range de Datas e, você deseja mostrar à ele somente dias Úteis, é isso?
Pelo que eu entendi, o usuário vai digitar um Range de Datas e, você deseja mostrar à ele somente dias Úteis, é isso?
-
- Moderador
- Mensagens: 2016
- Registrado em: Qua, 12 Jan 2005 3:25 pm
- Localização: Araraquara - SP
Abraço,
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Ai brother, faça uns testes:
Em PL/SQL:
Ou, com SQL também é possível:
qualquer coisa, manda ai.
Em PL/SQL:
--Ex.01/01/2007 à 30/04/2007
DECLARE
vdata_ini DATE := TO_DATE('01/01/2007','dd/mm/rrrr');
vdata_fim DATE := TO_DATE('30/04/2007','dd/mm/rrrr');
vdias PLS_INTEGER := 0;
BEGIN
vdias := (vdata_fim - vdata_ini);
FOR x IN 1..vdias
LOOP
IF TO_CHAR(vdata_ini, 'DY') = 'SUN' -- No teu caso, 'DOM'
THEN
-- Faça algo aqui.
dbms_output.put_line('Imprime a data na tela (Domingo): ' || TO_CHAR(vdata_ini, 'dd/mm/rrrr'));
END IF;
vdata_ini := vdata_ini + 1;
END LOOP;
END;
SELECT *
FROM sua_tabela
WHERE to_char(dta_atualizacao,'DY') = 'SUN' -- No teu caso, DOM
AND dta_atualizacao BETWEEN TO_DATE('01/01/2007','dd/mm/rrrr')
AND TO_DATE('30/04/2007','dd/mm/rrrr');
-
- Rank: Analista Pleno
- Mensagens: 123
- Registrado em: Qua, 24 Out 2007 4:31 pm
- Localização: rio
Trevisolli
Cara peço desculpas mas sou meio lerdo mesmo vamos por parte onde eu coloco minha tabela nesse trem? rs
tabela = usuario
campo = dtinicio
e nessa parte você colocou
THEN
-- Faça algo aqui.
o que é pra fazer?
Cara fica puto não mas é que eu estou precisando mesmo...
Forte abraço
Cara peço desculpas mas sou meio lerdo mesmo vamos por parte onde eu coloco minha tabela nesse trem? rs
tabela = usuario
campo = dtinicio
e nessa parte você colocou
THEN
-- Faça algo aqui.
o que é pra fazer?
Cara fica puto não mas é que eu estou precisando mesmo...
Forte abraço
-
- Moderador
- Mensagens: 2016
- Registrado em: Qua, 12 Jan 2005 3:25 pm
- Localização: Araraquara - SP
Abraço,
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Brother,
Faça com o SQL que adicionei no código anterior.
Tem as duas formas, mas, a de SQL atende melhor tua necessidade, que seria dar um SELECT em uma tabela, retornando apenas os domingos, beleza?
qualquer coisa, manda ai, sem crise.
Faça com o SQL que adicionei no código anterior.
Tem as duas formas, mas, a de SQL atende melhor tua necessidade, que seria dar um SELECT em uma tabela, retornando apenas os domingos, beleza?
SELECT *
FROM sua_tabela
WHERE to_char(dta_atualizacao,'DY') = 'SUN' -- No teu caso, DOM
AND dta_atualizacao BETWEEN TO_DATE('01/01/2007','dd/mm/rrrr')
AND TO_DATE('30/04/2007','dd/mm/rrrr');
-
- Moderador
- Mensagens: 2016
- Registrado em: Qua, 12 Jan 2005 3:25 pm
- Localização: Araraquara - SP
Abraço,
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
beleza brother, q bom!
Precisando, conte com a gente.
Precisando, conte com a gente.
- Toad
- Rank: DBA Pleno
- Mensagens: 253
- Registrado em: Sex, 18 Nov 2005 2:14 pm
- Localização: Seattle, WA
- Contato:
Matheus Gonçalves
matheus.dev
twitter.com/developer__c
matheus.dev
twitter.com/developer__c
http://glufke.net/oracle/search.php
Acredito que esse tópico também possa ajudar:
http://glufke.net/oracle/viewtopic.php? ... as+%FAteis
Acredito que esse tópico também possa ajudar:
http://glufke.net/oracle/viewtopic.php? ... as+%FAteis
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 20 visitantes