LaércioSampaio Postado Abril 27, 2009 Denunciar Share Postado Abril 27, 2009 Boa tarde.Estou com um probleminha e preciso de ajuda.Estou fazendo uma consulta no campo data e hora no access e não está funcionando.É simples, quero consultar as datas menores que a atual.Segue:$data2 = date('j/m/Y H:i:s');$con = odbc_connect("base_gp","","") or die("Erro na conexão com o Database");$sql = odbc_exec($con,"SELECT * FROM tbl_Historico_Total WHERE HTI_DATA < '$data2'");Já tentei vários formados de data e hora, mas não consigo fazer essa consulta.O banco de dados que estou usando é o access.Desde já muito obrigado! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Mario Junior Postado Abril 27, 2009 Denunciar Share Postado Abril 27, 2009 (editado) Retorna algum erro?Receio estar enganado, mas creio que campos do tipo date não aceite instrução de < (menor) na linguagem SQL. Editado Abril 27, 2009 por Mario Junior Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 LaércioSampaio Postado Abril 27, 2009 Autor Denunciar Share Postado Abril 27, 2009 Não retorna nenhum erro.Na verdade, vou ter dois campos de data, onde devo usar BETWEEN OU >= AND <=.A única forma que aceita é o like, acho que deveria aceitar o >, pois já usei no Visual Basic. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Mario Junior Postado Abril 27, 2009 Denunciar Share Postado Abril 27, 2009 Mas vai depender do tipo de dado que você usa no campo.Acabei de fazer um teste aqui em um banco de dados PostgreSQL (é diferente mas é linguagem SQL também) e o sinal de maior ou menor não me retornou nenhum resultado.Talvez fosse melhor você procurar algo a respeito na seção de linguagens SQL.Cara foi mal.Aceita sim Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 LaércioSampaio Postado Abril 27, 2009 Autor Denunciar Share Postado Abril 27, 2009 Muito obrigado pela atenção !!!Mas resolvi agora da seguinte forma;Na tabela do access, mudei o formado do campo de data e hora para texto, não sei se está certo fazer isso, mas funcionou.Até mais e muito obrigado ! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Mario Junior Postado Abril 27, 2009 Denunciar Share Postado Abril 27, 2009 então cara..Eu erreinão muda não que dá certo sim. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 LaércioSampaio Postado Abril 27, 2009 Autor Denunciar Share Postado Abril 27, 2009 Olhando melhor, dessa forma não funciona. Tenho que achar uma solução. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Mario Junior Postado Abril 27, 2009 Denunciar Share Postado Abril 27, 2009 O banco está salvando neste formato mesmo?D/M/Y H:m:s ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 LaércioSampaio Postado Abril 27, 2009 Autor Denunciar Share Postado Abril 27, 2009 O banco de dados está. Mas o estranho é que quando faço uma consulta no banco, o valor retorna da seguinte forma.2009-04-14 08:17:16, mas como eu disse, olhando no access aparece 14/04/09 08:17:16.Já tentei em todos esses formatos, mas não consegui. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Mario Junior Postado Abril 27, 2009 Denunciar Share Postado Abril 27, 2009 Então..se o banco está gravando no formato (AAAA-MM-DD HH:MM:SS) a query tem que ser rodada neste formato.Se você enviar uma consulta desta forma " where data < '2009-04-24 23:59:59' ele não traz nada?Roda esta instrução direto no console pra ver.Eu acho que o que está engasgando aí é o fato do seu campo date ser com Time Stamp...aí se você não enviar a informação da hora, acho que a consulta irá retornar vaiza mesmo...agora se você enviar o time stamp desta maneira (23:59:59) juntamente com a data, acho que retorna valor.É que eu já passai por uma situação semelhante, onde meu campo date era com Time Stamp...eu não enviava a hora..ele me retornava vazio. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 LaércioSampaio Postado Abril 27, 2009 Autor Denunciar Share Postado Abril 27, 2009 Meu camarada.A solução que achei foi a seguinte.<?php$di = "27/4/2009 00:00:00";$df = "27/4/2009 10:00:00";$con = odbc_connect("base_gp","","") or die("Erro na conexão com o Database");$sql = odbc_exec($con,"SELECT * FROM datas WHERE datainicial between #$di# and #$df# ");?>foi a melhor solução, a única coisa que pastei foi que ao invés ' tem que ser usado #.Mas na verdade foi divertido, isso me motiva bastante "DESAFIOS". Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 colerus Postado Abril 29, 2009 Denunciar Share Postado Abril 29, 2009 o access interpreta mesmo datas de maneiras diferentes no sql... campos do tipo data, tem de ser delimitados com # ao invés de '... também senti essa diferença quando migrei de asp + access pra php+mysql...:D Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
LaércioSampaio
Boa tarde.
Estou com um probleminha e preciso de ajuda.
Estou fazendo uma consulta no campo data e hora no access e não está funcionando.
É simples, quero consultar as datas menores que a atual.
Segue:
$data2 = date('j/m/Y H:i:s');
$con = odbc_connect("base_gp","","") or die("Erro na conexão com o Database");
$sql = odbc_exec($con,"SELECT * FROM tbl_Historico_Total WHERE HTI_DATA < '$data2'");
Já tentei vários formados de data e hora, mas não consigo fazer essa consulta.
O banco de dados que estou usando é o access.
Desde já muito obrigado!
Link para o comentário
Compartilhar em outros sites
11 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.