Perguntando sobre a sua pergunta 😉
E nada a acrescentar à explicação do Lars anteriormente.
Avalados por :
Olá a todos,
Tenho uma visualização que combina algumas tabelas.
Formatei a coluna A (obtida da tabela 1) com esta sintaxe
LOCALTOUTC ( CAST ("A" AS SECONDDATE ), 'AUSNSW', 'sap' )
E nomeio a nova coluna como B
Estou procurando uma declaração SQL de exemplo para consultar a visualização comparando a coluna B na cláusula WHERE.
Não tenho certeza da sintaxe correta.
Obrigado pela ajuda.
Tri
Perguntando sobre a sua pergunta 😉
E nada a acrescentar à explicação do Lars anteriormente.
Olá Florian,
Você conhece a sintaxe para "seu_valor_de_comparação"? Refiro-me a que tipo de formato podemos usar para comparar DATA. Neste caso, é LOCALTOUTC.
Obrigado.
Tri
Uma opção seria usar o resultado da sua consulta de "transformação" como fonte de dados para outra consulta. Por exemplo, algo assim:
SELECT * FROM(
SELECT LOCALTOUTC(CAST("A" AS SECONDDATE), 'AUSNSW', 'sap') as B FROM tua_tabela
) WHERE B = teu_valor_de_comparação;
Tenho a impressão de que estás a perguntar "que formato de data posso usar para comparar com a saída do LOCALTOUTC?"
Se estiveres correto, então tenho boas notícias para ti: o LOCALTOUTC retorna um tipo de dados data.
E os tipos de dados data não têm um formato. As datas têm um valor específico, mas a forma como imprimes o valor não tem impacto no valor.
Portanto, para comparar com um valor de data, precisas de outro tipo de dados data.
Por exemplo, podes comparar diretamente
LOCALTOUTC (...) = current_date
porque ambas as funções retornam valores de data.
Por outro lado, se quiseres fornecer um valor de data como texto, esse valor deve ser convertido para um valor de data. A forma de o fazer é utilizando a função TO_DATE, que recebe duas strings como entrada:
1. uma string que representa o valor da data
e
2. uma string que representa o formato da primeira string.
Isto pode ser visto assim:
TO_DATE ('14.02.2020', 'DD.MM.YYYY')
Queres realmente ser muito claro sobre esta distinção entre um valor de data e uma string que representa um valor de data que precisa ser convertida.
Às vezes, quando não se utiliza a função TO_DATE, o HANA tentará converter automaticamente/implicitamente a string para um valor de data testando formatos predefinidos.
Não confies nisso, escreve a conversão de string para data na tua declaração.
Voltando à tua pergunta original:
SELECT*FROM(SELECT LOCALTOUTC (CAST("A" AS SECONDDATE ), 'AUSNSW', 'sap' ) as B FROM your_table)WHERE B = TO_DATE ('14.02.2020', 'DD.MM.YYYY');
deve funcionar bem (se a tua string de data e a string de formato coincidirem).
contacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute