/ / Pesquisa de Data do MySQL MM / DD / AAAA para MM / DD / AAAA - php, mysql, data

Pesquisa de Data do MySQL MM / DD / AAAA para MM / DD / AAAA - php, mysql, data

Eu tenho uma tabela no MySQL que se parece com o seguinte:

date        |storenum   |views
-------------------------------
08/21/2009  |42         |3
-------------------------------
08/22/2009  |43         |1
-------------------------------
08/21/2009  |43         |4
-------------------------------
08/22/2009  |42         |22
-------------------------------

Eu sei que esta é uma data não convencionalformato, mas eu estou usando em oposição a AAAA-MM-DD para facilidade de uso. Ainda tenho que procurar este banco de dados para obter todos os "View Records" entre duas datas. Em geral funciona mas quando procuro de uma data como 01/01/2009 a 01/01/2010 não obtenho resultados.

Alguém tem alguma sugestão? Crítica construtiva é bem vinda. Obrigado!

Respostas:

3 para resposta № 1

Com toda a honestidade, mude a maneira de armazenar datas. Mas, para trabalhar com o que você tem agora, você pode procurar usar STR_TO_DATE () para convertê-los em datas com as quais o MySQL pode trabalhar.


2 para resposta № 2

Você menciona a facilidade de uso - acho que o caso que você está tentando resolver agora é um exemplo de "não tão fácil de usar" :).

Eu iria ficar com o formato padrão de datas no MySQL

yyyy-mm-dd h:i:s //php"s date formatting

E use ENCONTRO Campos. Isso resolverá o problema de pesquisa / inserção de datas. Embora você precise alterar algum código para corrigir a exibição das datas.


1 para resposta № 3

qual é seu date tipo de campo? para um uso correto deve ser date ou datetime, e vendo o que você tem parece que você armazena você dates em um varchar. Estou certo?

Isso também tem a vantagem de poder adicionar índices e, em seguida, pesquisar em intervalos por meio do mysql

minha sugestão é obter o que o usuário digitar. e depois convertê-lo para um formato de data mysql para procurar

algo como:

<?php

$mysql_time = date("Y-m-d H:m:s" strotime("05/11/2008"));

$query = sprintf("SELECT * FROM sometable < "%s"", $mysql_time);

?>

0 para a resposta № 4

Tente a pesquisa com o formato "yyyyMMdd" O MySql irá reconhecê-lo com certeza.