ERRO EM CONSULTA SQL

PERCIFILHO 23/03/2011 13:26:24
#368898
Olá, amigos, olha eu aqui de novo.

Estou fazendo uma consulta sql onde preciso pegar todos os registros da tabela onde a situação é [Ô]Ativo[Ô] e colocar em order de data descendente.
O problema é que na tabela, o campo data é texto e não posso alterar para data.

Fiz assim:

Citação:

SELECT * FROM MINHATABELA WHERE SITUAÇÃO LIKE [ô]ATIVO[ô] ORDER BY CDATE(DATA) DESC



porém não der certo.
Qual é outra maneira de se fazer?

Até mais.
NETMANIA 23/03/2011 13:33:25
#368900
1º O campo que você está ordenando é do tipo date? Se sim, não precisa desta função para isso
2º Qual é o banco de dados que você está usando? O CDate é comando interno do ASP 3 e VB e não funciona no SQL Server, Access, Oracle e MySQL.
JONATHANSTECKER 23/03/2011 13:36:56
#368902
Qual o formato dessa data no banco? yyyy-MM-dd ?
PERCIFILHO 23/03/2011 13:37:01
#368903
Amigo, conforme expliquei, o campo é tipo texto, não date.
Então preciso de uma função para transformar o campo texto em date. Utilizo o BD Access. Já utilizei o CDATE antes e funcionou, sim.
Mas... então qual funcão devo utilizar?
PERCIFILHO 23/03/2011 13:39:49
#368904
Jonathan, a data é gravada: dd/mm/yyyy na tabela
EDILSONLEAL 23/03/2011 13:43:17
#368905
vê aí se funciona!!!
convert(datetime, char(39)+ campodata + char(39),102)
PERCIFILHO 23/03/2011 14:08:24
#368908
Desculpe a ignorância, mas como funciona essa funcão, o que ela faz?
MARCELO.TREZE 23/03/2011 14:12:28
#368910
Perci qual é o banco de dados?
PERCIFILHO 23/03/2011 14:18:25
#368911
Olá, Marcelo, é Access.
PERCIFILHO 23/03/2011 14:31:18
#368912
Pessoal, eu acho que descobri qual é o erro. é que eu faço duas consultas sql e acho que não posso fazer como estou fazendo.

O usuário digita o nome de um funcionário numa TextBox, aí eu faço a consulta para saber se o funcionário existe.
Se o funcionário existir, mostra os empréstimos cadastrados por ordem de data decrescente.
Porém, se ele não digitar nada na TextBox, é para mostrar todos os empréstimos cadastrados, de todos os funciónários em ordem de data decrescente. é aí que não aparece nesta ordem.

A parte do código que está realizando esta consulta é esta:

sqlfuncionarios = [Ô]Select * From Funcionarios Where nome Like [ô]*[Ô] & TxtNome.Text & [Ô]*[ô][Ô]
Set rsfuncionarios = db.OpenRecordset(sqlfuncionarios)
If rsfuncionarios.EOF Then
[ô] deixa a ListView em branco
Exit Sub
End If
Do Until rsfuncionarios.EOF
sqlconsignados = [Ô]Select * From Consignados Where codigofuncionario Like [ô][Ô] & rsfuncionarios([Ô]codigo[Ô]) & [Ô][ô] And situacao Like [ô]Ativo[ô] Order By cdate(datainicio) Desc[Ô]
Set rsconsignados = db.OpenRecordset(sqlconsignados)
If rsconsignados.EOF Then
rsfuncionarios.MoveNext
Else
Do Until rsconsignados.EOF
[ô]preenche a ListView com os dados encontrados
rsconsignados.MoveNext
Loop
rsfuncionarios.MoveNext
End If
Loop
Exit Sub


Até mais.
KIMH 23/03/2011 14:31:22
#368913
Tentar formatar a data dessa maneira

DATA = Format(DATA, [Ô]YYYY-MM-DD[Ô])
DATA = [Ô]#[Ô] & DATA & [Ô] 00::00::00#[Ô]

SELECT * FROM MINHATABELA WHERE SITUAÇÃO LIKE [ô]ATIVO[ô] ORDER BY CDATE(DATA) DESC
Página 1 de 2 [19 registro(s)]
Tópico encerrado , respostas não são mais permitidas