ERRO EM CONSULTA SQL
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:
porém não der certo.
Qual é outra maneira de se fazer?
Até mais.
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.
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.
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.
Qual o formato dessa data no banco? yyyy-MM-dd ?
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?
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?
Jonathan, a data é gravada: dd/mm/yyyy na tabela
vê aà se funciona!!!
convert(datetime, char(39)+ campodata + char(39),102)
convert(datetime, char(39)+ campodata + char(39),102)
Desculpe a ignorância, mas como funciona essa funcão, o que ela faz?
Perci qual é o banco de dados?
Olá, Marcelo, é Access.
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.
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.
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
DATA = Format(DATA, [Ô]YYYY-MM-DD[Ô])
DATA = [Ô]#[Ô] & DATA & [Ô] 00::00::00#[Ô]
SELECT * FROM MINHATABELA WHERE SITUAÇÃO LIKE [ô]ATIVO[ô] ORDER BY CDATE(DATA) DESC
Tópico encerrado , respostas não são mais permitidas