SELECT no Banco de Dados SQL - Dividir Horas e Minutos
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!
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
Curtidas 0
Respostas
Renato Dias
27/02/2019
Fala Highlander! Qual é o banco de dados que está utilizando? Pergunto por que estou estranhando esses nomes de campos e tabelas entre aspas duplo.
GOSTEI 0
Hian Cintra
27/02/2019
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:
Caso não resolva, detalha melhor o que você espera como resultado e qual é de fato o problema que está enfrentando.
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!
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!
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!
GOSTEI 0
Highlander1901
27/02/2019
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"
GOSTEI 0
Highlander1901
27/02/2019
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:
Caso não resolva, detalha melhor o que você espera como resultado e qual é de fato o problema que está enfrentando.
Um abraço!
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.
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!
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!
GOSTEI 0
Hian Cintra
27/02/2019
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!
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:
Caso não resolva, detalha melhor o que você espera como resultado e qual é de fato o problema que está enfrentando.
Um abraço!
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.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!
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!
GOSTEI 0
Highlander1901
27/02/2019
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!
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:
Caso não resolva, detalha melhor o que você espera como resultado e qual é de fato o problema que está enfrentando.
Um abraço!
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.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!
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'
GOSTEI 0