Pular para o conteúdo principal

Funções de data Oracle

 

image

Com o Oracle é possível obter uma série de resultados a partir de uma ou mais datas, como por exemplo verificar o último dia do mês ou verificar a quantidade de meses entre duas datas, então vamos a alguns exemplos:

 

Data atual do sistema: SYSDATE

Remover meses de uma data: ADD_MONTHS(SYSDATE, -1)

Adicionar meses de uma data: ADD_MONTHS(SYSDATE, +1)

Buscar o último dia do mês: LAST_DAY(SYSDATE)

Primeiro dia do mês: TRUNC(SYSDATE, ‘MONTH’)

Quantidade de meses entre duas datas: MONTHS_BETWEEN(SYSDATE, ‘27/07/1982’)

Primeiro dia do ano: TRUNC(SYSDATE, ‘YEAR’)

Dias da semana: DECODE( TO_NUMBER( TO_CHAR          (SYSDATE, ‘D’) )

,1, ‘domingo’

,2, ‘segunda-feira’

,3, ‘terça-feira’

,4, ‘quarta-feira’

,5, ‘quinta-feira’

,6, ‘sexta-feira’

,7,’sábado’

)

Comentários

  1. Ótimo!! Ajudou muito, obrigada.

    ResponderExcluir
  2. Streaming de radio ShoutCast com auto-dj e hospedagem para sites e com melhor custo beneficio da internet so na

    ABNIX.com.br

    Streaming para rádio - 200 ouvintes - Qualidade: 32 kbs - Auto Dj 1 Giga - R$ 10.90

    Os planos Shoutcast vem com AutoDJ, ou seja sua rádio pode ficar 24 horas no ar, além da possibilidade de entrar

    com sua programação ao vivo na hora que desejar.

    Em todos os planos de streaming, você terá gratuitamente 3 meses de hospedagem no PLANO BRONZE de graça sem pagar nada durante 3 meses.

    ATENÇÃO *Cobrimos oferta da Concorrência (sujeito a análise).

    Criação de Sites a Partir de 300 reias.

    WWW.ABNIX.COM.BR

    ResponderExcluir
  3. Muito simples, mas muito funcional. ótima dica. Obrigado

    ResponderExcluir
  4. Dia da semana não é mais fácil:

    SELECT TO_CHAR(SYSDATE,'DAY') FROM DUAL

    ResponderExcluir
  5. e a quantidade de dias entre duas datas, como faz?

    ResponderExcluir
  6. Olá Anônimo, você pode fazer data - data:

    select (sysdate - sysdate+1) from dual;

    ResponderExcluir
  7. Ola Boa tarde, gostaria de saber se é possível descobrir qual o primeiro e sétimo dia da semana. Exemplo:

    01/01/2017 = domingo then 1º domingo
    02/01/2017 = segunda-feira then 1º segunda
    03/01/2017 = terça-feira then 1º terça

    08/01/2017 = domingo then 2º domingo
    09/01/2017 = segunda-feira then 2º segunda

    Assim por mês.... todos as anos.

    ResponderExcluir
    Respostas
    1. Este comentário foi removido pelo autor.

      Excluir
    2. select replace(to_char(sysdate,'day'),'-feira') from dual
      Troque sysdate pela data desejada.

      Excluir
  8. Como faço para trazer o nome do MÊS, não sendo o mes atual que estamos, por exemplo para um relatorio, trazer o nome do mes do lado da data.

    ResponderExcluir
    Respostas
    1. Olá Anônimo! Não sei se entendi bem sua dúvida, mas para mostrar o nome do "próximo" mês você poderia adicionar um mês ao mês atual com o "ADD_MONTHS" e ai mostrar o nome desse mês com o "TO_CHAR", ficaria algo como: "TO_CHAR( ADD_MONTHS( SYSDATE, 1 ) , ‘MONTH’ )"

      Excluir

Postar um comentário

Obrigado por Participar do programero, fique a vontade para agradecer, retificar, perguntar ou sugerir.

Mais visitadas

Listar arquivos existentes em diretório (Delphi)

Mostraremos uma maneira simples e prática para listar o conteúdo de um diretório com a opção de incluir nessa listagem os arquivos de seus subdiretórios. No exemplo abaixo temos um Edit para receber o diretório a ser pesquisado um CheckBox para indicar se os subdiretórios entrarão na pesquisa um botão para efetuar a pesquisa e um Memo para listar os arquivos encontrados, no final um Edit que receberá o cálculo final (em bytes) da soma do tamanho dos arquivos. procedure TForm1.Button1Click(Sender: TObject); begin   tamanhoTotal := 0;   memLista.Lines.Clear;   ListarArquivos(edtDiretorio.Text, chkSub.Checked);   Edit1.Text := IntToStr( tamanhoTotal ); end; procedure TForm1.ListarArquivos(Diretorio: string; Sub:Boolean); var   F: TSearchRec;   Ret: Integer;   TempNome: string; begin   Ret := FindFirst(Diretorio+'\*.*', faAnyFile, F);   try     while Ret = 0 do       begin         if TemAtributo(F.Attr,

Como Verificar se um Objeto Existe (Delphi)

Em alguns momentos surge a necessidade de verificar se um determinado objeto existe, ou seja se já foi criado, principalmente quando se trabalha com criação dinâmica em tempo de execução, então vamos ao exemplo: - Vamos criar uma variável, um vetor do tipo caixa de texto: var Minha_caixa : array of TEdit; - Em seguida definir o tamanho desse vetor, no caso será dez: setLength(Minha_caixa, 10) - Agora iremos criar nossa caixa de texto: // lembrando que o vetor inicia em zero // logo o índice final é o tamanho total - 1 for vl_i := 0 to Length(Minha_caixa) -1 do begin Minha_caixa[vl_i] := TEdit.Create(self); with Minha_caixa[vl_i] do begin Parent := Self; Name := 'Caixa_N'+IntToStr(vl_i); Text := 'Esta é a '+IntToStr(vl_i)+' º caixa !'; ReadOnly := true; Height := 21; Width :=