SELECT no Banco de Dados SQL - Dividir Horas e Minutos

27/02/2019

12

Senhores, buenas... não consigo efetuar esse SELECT, e já quebrei a cabeça pra dar certo. Podem me ajudar?


SELECT
"A"."CCUSTO" as "Célula",
"A"."IDCONTR" as "Matrícula",
"A"."NOME",
"A"."SINDICATO",
"A"."DESCEVENTO",
"A"."LOCAL",
(HOUR("A"."JAN") + (MINUTE("A"."JAN") / 60)) as "Mes Anterior",
(HOUR("A"."FEV") + (MINUTE("A"."FEV") / 60)) as "Mes Atual",
((HOUR("A"."JAN") + (MINUTE("A"."JAN") / 60)) -(HOUR("A"."FEV") + (MINUTE("A"."FEV") / 60))) as "Crescimento",
(MINUTE("A"."FEV") / 60) as "Minutos"
FROM "BD_HORAS" AS "A"
WHERE "A"."CCUSTO" = '113'
OR "A"."CCUSTO" = '432'



Detalhes de erro:

Qualquer uma das opções abaixo poderia ser a possibilidade para o erro:

1. Poderia haver tipos incompatíveis de dados em um dos lados do operador comparador. Nesse caso, converta as colunas e tente novamente.

2. Não há função correspondente ao nome e argumento fornecidos. Você pode precisar adicionar conversões do tipo explícita.

Obs.: Sempre utilizei esse código, o que alterava era apenas o as colunas "JAN" e "FEV", dependendo do avanço dos meses.



HEEEELP!
Responder

Posts

27/02/2019

Renato Dias

Fala Highlander! Qual é o banco de dados que está utilizando? Pergunto por que estou estranhando esses nomes de campos e tabelas entre aspas duplo.
Responder

27/02/2019

Hian Cintra

Boa tarde! Como vai?

Se eu entendi bem o que você precisa obter como resultado, acredito que apenas o uso da função HOUR e MINUTE que está errado.

Caso seja SQL Server, ajuste os comandos para:

DATEPART(HOUR, [date]) 

DATEPART(MINUTE, [date])


Caso não resolva, detalha melhor o que você espera como resultado e qual é de fato o problema que está enfrentando.

Um abraço!

Senhores, buenas... não consigo efetuar esse SELECT, e já quebrei a cabeça pra dar certo. Podem me ajudar?


SELECT
"A"."CCUSTO" as "Célula",
"A"."IDCONTR" as "Matrícula",
"A"."NOME",
"A"."SINDICATO",
"A"."DESCEVENTO",
"A"."LOCAL",
(HOUR("A"."JAN") + (MINUTE("A"."JAN") / 60)) as "Mes Anterior",
(HOUR("A"."FEV") + (MINUTE("A"."FEV") / 60)) as "Mes Atual",
((HOUR("A"."JAN") + (MINUTE("A"."JAN") / 60)) -(HOUR("A"."FEV") + (MINUTE("A"."FEV") / 60))) as "Crescimento",
(MINUTE("A"."FEV") / 60) as "Minutos"
FROM "BD_HORAS" AS "A"
WHERE "A"."CCUSTO" = '113'
OR "A"."CCUSTO" = '432'



Detalhes de erro:

Qualquer uma das opções abaixo poderia ser a possibilidade para o erro:

1. Poderia haver tipos incompatíveis de dados em um dos lados do operador comparador. Nesse caso, converta as colunas e tente novamente.

2. Não há função correspondente ao nome e argumento fornecidos. Você pode precisar adicionar conversões do tipo explícita.

Obs.: Sempre utilizei esse código, o que alterava era apenas o as colunas "JAN" e "FEV", dependendo do avanço dos meses.



HEEEELP!
Responder

27/02/2019

Highlander1901

Fala Highlander! Qual é o banco de dados que está utilizando? Pergunto por que estou estranhando esses nomes de campos e tabelas entre aspas duplo.
Estou usando o SGBD do Zoho Analitcs. Esse código eu já usava sempre, mas dessa vez quando fui alterar o nome das colunas "JAN" e "FEV" não aceitou a busca.

Obs.: Os nomes entre aspas são colunas da tabela BD_Horas.

Outro modo mais simples para esse SELECT, porém tbm não consigo mais fazer executar.

SELECT
"CCUSTO" as "Célula",
"IDCONTR" as "Matrícula",
"NOME",
"SINDICATO",
"DESCEVENTO",
"LOCAL",
(HOUR("JAN") + (MINUTE("JAN") / 60)) as "Mes Anterior",
(HOUR("FEV") + (MINUTE("FEV") / 60)) as "Mes Atual",
(HOUR("JAN") + (MINUTE("JAN") / 60)) -(HOUR("FEV") + (MINUTE("FEV") / 60)) as "Crescimento",
(MINUTE("FEV") / 60) as "Minutos"
FROM "BD_HORAS"
Responder

27/02/2019

Highlander1901

Boa tarde! Como vai?

Se eu entendi bem o que você precisa obter como resultado, acredito que apenas o uso da função HOUR e MINUTE que está errado.

Caso seja SQL Server, ajuste os comandos para:

DATEPART(HOUR, [date]) 

DATEPART(MINUTE, [date])


Caso não resolva, detalha melhor o que você espera como resultado e qual é de fato o problema que está enfrentando.

Um abraço!

Senhores, buenas... não consigo efetuar esse SELECT, e já quebrei a cabeça pra dar certo. Podem me ajudar?


SELECT
"A"."CCUSTO" as "Célula",
"A"."IDCONTR" as "Matrícula",
"A"."NOME",
"A"."SINDICATO",
"A"."DESCEVENTO",
"A"."LOCAL",
(HOUR("A"."JAN") + (MINUTE("A"."JAN") / 60)) as "Mes Anterior",
(HOUR("A"."FEV") + (MINUTE("A"."FEV") / 60)) as "Mes Atual",
((HOUR("A"."JAN") + (MINUTE("A"."JAN") / 60)) -(HOUR("A"."FEV") + (MINUTE("A"."FEV") / 60))) as "Crescimento",
(MINUTE("A"."FEV") / 60) as "Minutos"
FROM "BD_HORAS" AS "A"
WHERE "A"."CCUSTO" = '113'
OR "A"."CCUSTO" = '432'



Detalhes de erro:

Qualquer uma das opções abaixo poderia ser a possibilidade para o erro:

1. Poderia haver tipos incompatíveis de dados em um dos lados do operador comparador. Nesse caso, converta as colunas e tente novamente.

2. Não há função correspondente ao nome e argumento fornecidos. Você pode precisar adicionar conversões do tipo explícita.

Obs.: Sempre utilizei esse código, o que alterava era apenas o as colunas "JAN" e "FEV", dependendo do avanço dos meses.



HEEEELP!
Ocorre que no meu caso o que seria representado como [date] é minha coluna "JAN" (que está contida na tabela BD_horas). Ocorre que essa coluna contém dados de horas e minutos (hh:mm), porém está como uma coluna sem formatação de valores.
Responder

27/02/2019

Hian Cintra

Não tem problema, basta você substituir onde há [date] pelo nome da coluna, este trecho de código que enviei foi apenas demonstrativo.

Faz o teste e me fala se deu certo.

Um abraço!

Boa tarde! Como vai?

Se eu entendi bem o que você precisa obter como resultado, acredito que apenas o uso da função HOUR e MINUTE que está errado.

Caso seja SQL Server, ajuste os comandos para:

DATEPART(HOUR, [date]) 

DATEPART(MINUTE, [date])


Caso não resolva, detalha melhor o que você espera como resultado e qual é de fato o problema que está enfrentando.

Um abraço!

Senhores, buenas... não consigo efetuar esse SELECT, e já quebrei a cabeça pra dar certo. Podem me ajudar?


SELECT
"A"."CCUSTO" as "Célula",
"A"."IDCONTR" as "Matrícula",
"A"."NOME",
"A"."SINDICATO",
"A"."DESCEVENTO",
"A"."LOCAL",
(HOUR("A"."JAN") + (MINUTE("A"."JAN") / 60)) as "Mes Anterior",
(HOUR("A"."FEV") + (MINUTE("A"."FEV") / 60)) as "Mes Atual",
((HOUR("A"."JAN") + (MINUTE("A"."JAN") / 60)) -(HOUR("A"."FEV") + (MINUTE("A"."FEV") / 60))) as "Crescimento",
(MINUTE("A"."FEV") / 60) as "Minutos"
FROM "BD_HORAS" AS "A"
WHERE "A"."CCUSTO" = '113'
OR "A"."CCUSTO" = '432'



Detalhes de erro:

Qualquer uma das opções abaixo poderia ser a possibilidade para o erro:

1. Poderia haver tipos incompatíveis de dados em um dos lados do operador comparador. Nesse caso, converta as colunas e tente novamente.

2. Não há função correspondente ao nome e argumento fornecidos. Você pode precisar adicionar conversões do tipo explícita.

Obs.: Sempre utilizei esse código, o que alterava era apenas o as colunas "JAN" e "FEV", dependendo do avanço dos meses.



HEEEELP!
Ocorre que no meu caso o que seria representado como [date] é minha coluna "JAN" (que está contida na tabela BD_horas). Ocorre que essa coluna contém dados de horas e minutos (hh:mm), porém está como uma coluna sem formatação de valores.
Responder

27/02/2019

Highlander1901

Não tem problema, basta você substituir onde há [date] pelo nome da coluna, este trecho de código que enviei foi apenas demonstrativo.

Faz o teste e me fala se deu certo.

Um abraço!

Boa tarde! Como vai?

Se eu entendi bem o que você precisa obter como resultado, acredito que apenas o uso da função HOUR e MINUTE que está errado.

Caso seja SQL Server, ajuste os comandos para:

DATEPART(HOUR, [date]) 

DATEPART(MINUTE, [date])


Caso não resolva, detalha melhor o que você espera como resultado e qual é de fato o problema que está enfrentando.

Um abraço!

Senhores, buenas... não consigo efetuar esse SELECT, e já quebrei a cabeça pra dar certo. Podem me ajudar?


SELECT
"A"."CCUSTO" as "Célula",
"A"."IDCONTR" as "Matrícula",
"A"."NOME",
"A"."SINDICATO",
"A"."DESCEVENTO",
"A"."LOCAL",
(HOUR("A"."JAN") + (MINUTE("A"."JAN") / 60)) as "Mes Anterior",
(HOUR("A"."FEV") + (MINUTE("A"."FEV") / 60)) as "Mes Atual",
((HOUR("A"."JAN") + (MINUTE("A"."JAN") / 60)) -(HOUR("A"."FEV") + (MINUTE("A"."FEV") / 60))) as "Crescimento",
(MINUTE("A"."FEV") / 60) as "Minutos"
FROM "BD_HORAS" AS "A"
WHERE "A"."CCUSTO" = '113'
OR "A"."CCUSTO" = '432'



Detalhes de erro:

Qualquer uma das opções abaixo poderia ser a possibilidade para o erro:

1. Poderia haver tipos incompatíveis de dados em um dos lados do operador comparador. Nesse caso, converta as colunas e tente novamente.

2. Não há função correspondente ao nome e argumento fornecidos. Você pode precisar adicionar conversões do tipo explícita.

Obs.: Sempre utilizei esse código, o que alterava era apenas o as colunas "JAN" e "FEV", dependendo do avanço dos meses.



HEEEELP!
Ocorre que no meu caso o que seria representado como [date] é minha coluna "JAN" (que está contida na tabela BD_horas). Ocorre que essa coluna contém dados de horas e minutos (hh:mm), porém está como uma coluna sem formatação de valores.


Prezados, consegui!

Fui testando, testando e cheguei no código abaixo (pouca diferença, mas deu certo!):

SELECT
"A"."CCUSTO" as "Célula",
"A"."IDCONTR" as "Matrícula",
"A"."NOME",
"A"."SINDICATO",
"A"."DESCEVENTO",
"A"."LOCAL",
((hour("A"."JAN") + minute("A"."JAN")) / 60) as "Mes Anterior",
((hour("A"."FEV") + minute("A"."FEV")) / 60) as "Mes Atual",
((hour("A"."JAN") + minute("A"."JAN")) / 60) -((hour("A"."FEV") + minute("A"."FEV")) / 60) as "Crescimento",
(minute("A"."JAN") / 60) as "Minutos"
FROM "BD_Horas_DF" AS "A"
WHERE "A"."CCUSTO" = '113'
OR "A"."CCUSTO" = '432'
Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira