CONSULTA SQL - ALIAS

FBUR 19/05/2011 14:22:11
#374415
Boa tarde.

Tenho a seguinte consulta SQL


SELECT Date FROM tbl_dados WHERE Date = 18/05/2011


Essa consulta dá um erro referente à palavra [ô]Date[ô] na cláusula WHERE. [ô]DATE[ô] é uma palavra reservada. Por isso dá erro.

Pergunto: Como faço um ALIAS mesmo? Posso usar o Alias na cláusula WHERE?

Já tentei isso, mas não funfa.

SELECT Date As DataInicial FROM tbl_dados WHERE Date = 18/05/2011


Estou usando um banco de dados antigo: dBase (DBF)

Eu já tinha feito alias usando o MySQL... mas não me lembro mais. E tb nem sei se serve para o dBase.

Por que não consigo usar a cláusula WHERE com um campo de nome DATE ????!!!!!


[]'s
ANDPAG 19/05/2011 17:07:46
#374466
muda pra DATA ou DTINICIAL que vai funcionar....
MSMJUDAS 19/05/2011 17:31:10
#374471
Acho que vc não pode usar palavras reservadas como Date, já que Date é um tipo de campo.

Quais os campos que vc possui na tabela tbl_dados? Esse campo Date existe nessa tabela?
FBUR 19/05/2011 18:07:59
#374474
Então, não tem como alterar o nome do campo porque esse banco DBF é gerado automaticamente por um software industrial.

Eu dei o nome de tbl_dados para ficar mais fácio (o verdadeiro nome da tabela é 2011 05 18 0000 (Wide).dbf)

Os camos são:

Date (com dados do tipo 18/5/2011)
Time (com dados do tipo 08:35:675)
Temp (são temperaturas, de forma simples. Ex: 300)


Eu já vi por aí consultas SQL com [Ô]WHERE Date[Ô] mas acho q foi usando SQL Server ou MySQL. Não sei se tem algo a ver.

E eu acho que, para piorar, segundo a ajuda do site do MySQL, não dá para criar um alias para a cláusula Where. :(

E agora?!
MARCELO.TREZE 19/05/2011 18:15:19
#374476
é justamente o que o colega disse, o fato de usar nomes de funções do proprio sql pode causar erros, tipo:

date = na função retornará a data atual, então seria correto vc colocar o nome data, e o mesmo para time.

TECLA 19/05/2011 20:10:06
#374486
Tente delimitar a coluna usando [Ô][[Ô] e [Ô]][Ô].
SELECT[txt-color=#007100] [Date][/txt-color]...
GUTOTEC 20/05/2011 00:27:08
#374499
é incompativel ....... date() do DBF com Datetime ou Smalldatetime do SQL
ou voce convert o date() para Datetime ou Caracter .... vc escolhe


FBUR 23/05/2011 13:27:01
#374766
Delimitar a coluna, não funcionou.

SELECT [Date]...


O negócio é instalar o MySQL e importar os campos. Sendo que as colunas [ô]Date[ô] e [ô]Time[ô] do DBF irão para o MySQL como DataProcesso e TempoProcesso.

Por enquanto está sendo a melhor forma de fazer. Mas se ainda existir alguma alternativa, agradeço!

[]'s
NETMANIA 23/05/2011 15:11:35
#374777
Você está acessando os arquivos DBF como? Se possível, vincule eles a um banco Access e dispare as consultas neste banco. Eu sei que é uma idéia meio louca, mas acredito que neste caso o Access viraria o motor (como era o Clipper ou o DBase 3 Plus nestes casos).

P.S. Aff... agora eu percebi que estou velho neste ramo...
EXPERT 23/05/2011 15:45:29
#374781
Que tal ...

  SELECT tbl_dados.Date FROM tbl_dados WHERE tbl_dados.Date = 18/05/2011 
??

FICA COM DEUS!!!
FBUR 23/05/2011 17:40:40
#374792
Meus caros... Problema resolvido.

A questão é que consultas de data à tabelas DBF devem ter o seguinte formato na data:


{^yyyy-mm-dd}


Ou seja, a instrução ficaria assim:

strSQL = [Ô]SELECT * FROM tbl_dados WHERE Date = {^[Ô] & Format(minha_variavel, [Ô]yyyy/mm/dd[Ô]) & [Ô]}[Ô]


Neste caso, ainda é possível utilizar a palavra reservada [ô]Date[ô] na cláusula WHERE sem problemas. Uma coisa que atrapalhou muito é que eu tinha uma mensagem de erro diferente a cada tentativa de retornar a data. Ora era formato, ora era comando desconhecido, ora era erro de sintaxe.... Tinha tentado vários formatos diferentes. Mas esse eu nunca tinha visto.

Mas no final, tudo da certo... :)

[]'s
Tópico encerrado , respostas não são mais permitidas