filtro em data

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
  

Mensagemem Sex, 28 Dez 2007 7:36 am

Olá pessoal, vamos a duvida do dia...

tenho uma tabela data que contém data de usuários de vencimento tipo:

DTVENCIMENTO

eu queria trazer todos os usuários que tenham a data de vencimento 10

tipo 10/08/2007
10/09/2007
10/10/2007

só as data 10 de caa mês

valews
carlos12
Localização: rio

Mensagemem Sex, 28 Dez 2007 7:39 am

Dá uma olhada neste exemplo brother:

Código: Selecionar todos
SELECT SYSDATE
  FROM DUAL
WHERE TO_CHAR (SYSDATE, 'dd') = 28


No teu caso, coloque a igualdade 10.

Código: Selecionar todos
WHERE TO_CHAR (TEU_CAMPO, 'dd') = 10
Trevisolli
Localização: Araraquara - SP

Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Mensagemem Sex, 28 Dez 2007 7:44 am

E ai Carlos, beleza??

só deixando uma observação, verifique se existe algum indíce no campo da data, pois utilizando o to_char o banco não utilizará o indíce do campo, se sua tabela for grande poderá ficar lento a pesquisa..

[]'s!!
Tineks
Localização: Araraquara - SP

Cristiano (Tineks)
Araraquara - SP

Mensagemem Sex, 28 Dez 2007 8:03 am

Dá também pra usar o EXTRACT:

Código: Selecionar todos
where extract(DAY FROM DATE seu_campo) = 10


Funciona com oracle 9i em diante!
Veja mais sobre isso em:
http://www.techonthenet.com/oracle/func ... xtract.php
http://stanford.edu/dept/itss/docs/orac ... ons045.htm

Oracle/PLSQL: Extract Function

In Oracle/PLSQL, the extract function extracts a value from a date or interval value.

The syntax for the extract function is:

EXTRACT (
{ YEAR | MONTH | DAY | HOUR | MINUTE | SECOND }
| { TIMEZONE_HOUR | TIMEZONE_MINUTE }
| { TIMEZONE_REGION | TIMEZONE_ABBR }
FROM { date_value | interval_value } )

You can only extract YEAR, MONTH, and DAY from a DATE.

You can only extract TIMEZONE_HOUR and TIMEZONE_MINUTE from a timestamp with a time zone datatype.

Applies To:

* Oracle 9i, Oracle 10g, Oracle 11g


For example:

extract(YEAR FROM DATE '2003-08-22') would return 2003
extract(MONTH FROM DATE '2003-08-22') would return 8
extract(DAY FROM DATE '2003-08-22') would return 22
Editado pela última vez por dr_gori em Qui, 10 Jul 2008 8:51 am, em um total de 1 vez.
dr_gori
Localização: Portland, OR USA

Thomas F. G

Você já respondeu a dúvida de alguém hoje?
http://glufke.net/oracle/search.php?search_id=unanswered

Mensagemem Sex, 28 Dez 2007 8:07 am

aproveitando o embalo galera, quais são as funções que se aplicadas aos campos, ignoram seus índices, qualquer função de conversão???
Porva
Localização: São Paulo/SP

Rafael S. Nunes
São Paulo/SP

Mensagemem Sex, 28 Dez 2007 9:19 am

E ai Porva, beleza?

cara, se existe alguma q não faça isso eu não sei, mas sei q a maioria e as mais utilizadas (TO_CHAR, TO_DATE, SUBSTR, TRUNC, TO_NUMBER, LPAD, RPAD, INSTR, ROUND, NVL) matam o indíce...

uma opção seria você já criar o indice com o campo da forma q você deseja utilizar, você pode por exemplo ter um campo na sua base q tenha o formato DD/MM/YYYY HH24:MI:SS, com um campo desse tipo você tem que dar um trunc nele caso queria comparar ele com outra data dentro do seu select.. Pra resolver isso você pode criar um indice já truncado, dessa forma você não terá q colocar trunc no campo do seu select. assim não perdendo performance. Por exemplo.
Código: Selecionar todos
create index TAB_RESERVA_DT_RESERVA on TAB_RESERVA (TRUNC(DT_RESERVA))


[]'s!!
Tineks
Localização: Araraquara - SP

Cristiano (Tineks)
Araraquara - SP

Mensagemem Sex, 28 Dez 2007 2:18 pm

pessoal deu certinho aqui usei em um relatório pela manhã mas só agora pude entrar no forum pra agradecer valeu mesmo pelas dicas que Deus abençoe a todos brigadão.








:D
carlos12
Localização: rio


  • Veja também
    Respostas
    ExibiÇões
    Última mensagem


      Voltar para SQL

      Quem está online

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

cron