Pegar somente hora de um campo Datetime

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
darkangel_fs
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 11
Registrado em: Ter, 29 Jul 2008 11:02 am
Localização: DF

Olá, tenho um campo DATAENTRADA que armazena informações assim:
DATAHORAENTRADA
1/11/2008 12:39:06

Preciso colocar uma coluna TURNO que vai se basear na coluna DATAENTRADA da seguinte maneira:

Se DATAENTRA entre 00:00:00 e 06:59:59 então 'Madrugada' senão
Se DATAENTRA entre 07:00:00 e 12:59:59 então 'Manhã' senão
Se DATAENTRA entre 13:00:00 e 17:59:59 então 'Tarde' senão
Se DATAENTRA entre 18:00:00 e 23:59:59 então 'Noite'

Como posso fazer?

Grata!
Kleito Cesar
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 13
Registrado em: Ter, 28 Out 2008 9:32 pm
Localização: SC

Selecionar tudo

SELECT To_Char(DATA, 'HH24') FROM TABELA
ou

Selecionar tudo

SELECT To_Char(DATA, 'HH') FROM TABELA
[/code]
Kleito Cesar
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 13
Registrado em: Ter, 28 Out 2008 9:32 pm
Localização: SC

Lembrando que você também pode pegar o minuto e segundo..


Este link vai te ajudar..

http://pgdocptbr.sourceforge.net/pg80/f ... tting.html
darkangel_fs
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 11
Registrado em: Ter, 29 Jul 2008 11:02 am
Localização: DF

Beleza!!!

Obrigada pela dica!

Eu fiz assim, Funcionou legal, não sei se está otimizado, se tiver alguma dica de otimização para esta query... hehehehe

Abraços, Fernanda

Selecionar tudo

(case when to_char(a.datahoraentrada,'HH24:MI:SS') between ('00:00:00') and ('06:59:59') then 'Madrugada'
      else (case when to_char(a.datahoraentrada,'HH24:MI:SS') between ('07:00:00') and ('11:59:59') then 'Manhã'
           else (case when to_char(a.datahoraentrada,'HH24:MI:SS') between ('12:00:00') and ('17:59:59') then 'Tarde'
                else (case when to_char(a.datahoraentrada,'HH24:MI:SS') between ('18:00:00') and ('23:59:59') then 'Noite'
                     end)
                 end)    
            end)    
end) as turno
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante