SELECT no Banco de Dados SQL - Dividir Horas e Minutos
27/02/2019
0
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!
Highlander1901
Posts
27/02/2019
Renato Dias
27/02/2019
Hian Cintra
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!
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!
27/02/2019
Highlander1901
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"
27/02/2019
Highlander1901
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!
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!
27/02/2019
Hian Cintra
Faz o teste e me fala se deu certo.
Um abraço!
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!
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!
27/02/2019
Highlander1901
Faz o teste e me fala se deu certo.
Um abraço!
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!
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!
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'
Clique aqui para fazer login e interagir na Comunidade :)