Bru_ce 53 Denunciar post Postado Março 20, 2013 Boa Tarde,Seguinte Tenho um BD com datas cadastradas assim -> 03/15/2013 07:00 pmLogo precisava fazer um filtro entre datas e estou utilizando o jQuery para fazer o calendário: - Eu seleciono a data e é colocada no input assim por exemplo -> 06/03/2013 Minha query está assim, só que não pega .. $query = ("SELECT * FROM tabela WHERE ms_data BETWEEN '$juntaTotalInicio' AND '$juntaTotalFim''"); Compartilhar este post Link para o post Compartilhar em outros sites
shini 318 Denunciar post Postado Março 20, 2013 nessa consuta tem uma ' sobrando '$juntaTotalFim''"); esse campo é varchar ou date? imprimiu e rodou essa consulta direto no banco? Compartilhar este post Link para o post Compartilhar em outros sites
Bru_ce 53 Denunciar post Postado Março 20, 2013 Arrumei, mesmo assim ..é datetime, eu gravo com a instrução NOW() do SQL ! Compartilhar este post Link para o post Compartilhar em outros sites
shini 318 Denunciar post Postado Março 20, 2013 tente converter essa data q vem do jquery para de dd/mm/yyyy para y-m-d. Compartilhar este post Link para o post Compartilhar em outros sites
Bru_ce 53 Denunciar post Postado Março 20, 2013 Ok, porém no banco está diferente amigo ..ele vai tentar comparar isso -> 2013-03-16 11:38:03 com isso -> 2013-03-16 e não são iguais ! Compartilhar este post Link para o post Compartilhar em outros sites
Marcos Xavier 189 Denunciar post Postado Março 20, 2013 No Mysql as datas são gravadas no formato YYYY-AA-DD e não com as barras. https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format Exemplo: SELECT DATE_FORMAT( 'campo' , '%d-%m-%Y %H:%i:%s' ) as data FROM tabela UP Exibe no formato 20/03/2013 15:03:30 Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Março 20, 2013 Amigo, você diz o seguinte: Tenho um BD com datas cadastradas assim -> 03/15/2013 07:00 pm Então, você recebe a data assim: 03/15/2013 e quer comparar com esse formato acima correto ? Compartilhar este post Link para o post Compartilhar em outros sites
Bru_ce 53 Denunciar post Postado Março 20, 2013 isso .. Eu digitei errado, é com o "-" e não com a "/" Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Março 20, 2013 Certo, temos 1 porém. você grava esse "pm" e supostamente um "am" correto ? Compartilhar este post Link para o post Compartilhar em outros sites
Bru_ce 53 Denunciar post Postado Março 20, 2013 Desculpe amigo, me equivoquei .. ele esta gravando assim ó -> 2013-03-12 17:46:34 Compartilhar este post Link para o post Compartilhar em outros sites
shini 318 Denunciar post Postado Março 20, 2013 tente assim: SELECT * FROM tabela WHERE DATE(ms_data) BETWEEN '$juntaTotalInicio' AND '$juntaTotalFim' Compartilhar este post Link para o post Compartilhar em outros sites
Bru_ce 53 Denunciar post Postado Março 20, 2013 Irei tentar, como você me recomenda eu gravar a data da ocorrência ?Por exemplo cadastrei um usuário no sistema, preciso da data que foi feito isso .. Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Março 20, 2013 Caso tenha interesse apenas na data, deixe-o como date mesmo, caso tenha interesse no horário, deixe-o datetime e defina o timestamp Vejamos o seguinte, você tem isso: 2013-03-12 17:46:34 Em seu formulário é digitada apenas a data: 00/00/0000 Como ira conseguir o horário em que foi gravado o registro anterior ? aí você se complicou um pouco né ? o horário realmente te interessa ? Compartilhar este post Link para o post Compartilhar em outros sites
Bru_ce 53 Denunciar post Postado Março 21, 2013 Boa Tarde Amigo, então o horário não tenho interesse .. apenas a data mesmo !Você acha que devo pegar a data com a função própria da linguagem ? No caso o DATE ?Ou continuo inserindo com o NOW() do MySQL. Voltando ao problema do tópico .. tem como eu comparar a data assim 2013-03-12 com assim 2013-03-12 17:46:34 ? Compartilhar este post Link para o post Compartilhar em outros sites
shini 318 Denunciar post Postado Março 21, 2013 o date(campo) não funcionou? Compartilhar este post Link para o post Compartilhar em outros sites
Bru_ce 53 Denunciar post Postado Março 21, 2013 Não cara .. Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Março 21, 2013 Boa Tarde Amigo, então o horário não tenho interesse .. apenas a data mesmo ! Você acha que devo pegar a data com a função própria da linguagem ? No caso o DATE ? Ou continuo inserindo com o NOW() do MySQL. Voltando ao problema do tópico .. tem como eu comparar a data assim 2013-03-12 com assim 2013-03-12 17:46:34 ? Tem. MySQL vai assumir 00:00:00 mysql> select TIMESTAMP('2013-03-21'); +-------------------------+ | TIMESTAMP('2013-03-21') | +-------------------------+ | 2013-03-21 00:00:00 | +-------------------------+ 1 row in set (0,00 sec) function mysql_date($date) { return date('Y-m-d', strtotime($date)); } $juntaTotalInicio = mysql_date($date); $juntaTotalFim = mysql_date($date); SELECT * FROM tabela WHERE DATE(ms_data) BETWEEN '$juntaTotalInicio' AND '$juntaTotalFim' Compartilhar este post Link para o post Compartilhar em outros sites
shini 318 Denunciar post Postado Março 21, 2013 ultimo recurso... rs SELECT * FROM tabela WHERE date_format(data,'%d/%m/%Y') = '20/03/2013' Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Março 21, 2013 Pessoal, pelo que eu entendi, o problema dele é o seguinte. Ele tem um input cuja data é digitada em 00/00/0000 o no seu banco de dados ele está nesse formato: 0000-00-00 00:00:00 entenderam o problema ? não adianta ele comprar pois vai dar errado por causa do horário... eu acho que é esse o problema dele, já que não tem o interesse na HORA, tente mudar seu campo apenas para "date" e veja se o mysql irá assumir os registros já inseridos excluindo apenas o horário... faça um backup antes na tabela original caso você tenha problemas, e aí depois poderá fazer a comparação, convertendo 00/00/0000 para 0000-00-00 e comparando com o db que estará 0000-00-00 Compartilhar este post Link para o post Compartilhar em outros sites
Bru_ce 53 Denunciar post Postado Março 21, 2013 Isso mesmo alaerte, meu problema é este.meu input gera as datas assim: 00/00/0000E em minha tabela no BD esta assim: 0000-00-00 00:00:00 Preciso fazer um relatório de ligações entre datas porém não esta funcionando ! HELP rs :joia: Compartilhar este post Link para o post Compartilhar em outros sites