Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Conversão de Tipos


bsardao

Pergunta

Pessoal,
boa tarde!

Eu tenho dois campos no meu banco de dados com a definição de "character varying" que são "hora_inicial" e "hora_final".
Neles, o registro inserido esta da seguinte forma: "20171011033902" que é a data e a hora.

O que eu preciso fazer é subtrair estes dois campos, para ter a diferença de horas ou minutos. Pois bem, não sei como fazer conversões se esse for o caso. Já tentei algumas coisas com o CAST mas sem sucesso.

Será que alguém poderia me ajudar com um exemplo de como posso fazer isso ?

Muito obrigado.

Editado por bsardao
Resolvido
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Eu tenho uma pergunta: porque esse campo não é TimesTemp?

20171011033902 = 2017-10-11-03:39:02

você precisa fazer um split do campo. Como ele ta definido como Varchar,  você poe fazer um right(campo,6) para pegar  a hora:minutos:segundos de dentro da String.

select
  right(hora_inicial,6) as horainicial,
  right(hora_final,6) as hora final
from
  tabela

 depois você pode executar a operação que você deseja.

De qualquer forma, no seu lugar eu não faria esta operação  em SQL e sim  usando a linguagem da sua aplicação

Editado por Dr. House
Link para o comentário
Compartilhar em outros sites

  • 0
15 horas atrás, Dr. House disse:

Eu tenho uma pergunta: porque esse campo não é TimesTemp?

20171011033902 = 2017-10-11-03:39:02

você precisa fazer um split do campo. Como ele ta definido como Varchar,  você poe fazer um right(campo,6) para pegar  a hora:minutos:segundos de dentro da String.


select
  right(hora_inicial,6) as horainicial,
  right(hora_final,6) as hora final
from
  tabela

 depois você pode executar a operação que você deseja.

De qualquer forma, no seu lugar eu não faria esta operação  em SQL e sim  usando a linguagem da sua aplicação

Dr.House,
Obrigado pela resposta.

Então, na realidade, o banco que capturo estas informações, estão como varchar e este banco não é meu, eu apenas consumo a informação. Realmente seria bem mais simples.

O por que desta minha dúvida? pensei que se eu conseguisse após a captura destes dados, fazer a diferença de horário e assim incluir ela em outra tabela já com esta informação, tipo, com disparo de uma trigger, toda vez que estas informações fossem incluídas no meu banco de dados, fazendo com que a minha aplicação já consuma o valor final.

Você acha que este procedimento é valido ? e são poucos dados por dia, tipo 40 registros que serão incluídos.

Obrigado.

Link para o comentário
Compartilhar em outros sites

  • 0

Desculpe a demora, acho valida sim. É menos trabalho, já que a trigger já vai fazer tudo.

 

20171011033902 = 2017-10-11-03:39:02

você precisa fazer um split do campo. Como ele ta definido como Varchar,  você poe fazer um right(campo,6) para pegar  a hora:minutos:segundos de dentro da String.

select
  right(hora_inicial,6) as horainicial,
  right(hora_final,6) as hora final
from
  tabela

 depois você pode executar a operação que você deseja.

De qualquer forma, no seu lugar eu não faria esta operação  em SQL e sim  usando a linguagem da sua aplicação

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...