WilliamScriptBrasil Postado Março 19, 2005 Denunciar Share Postado Março 19, 2005 Hello crazy people !Estou com uma duvida neste meu inicio com o mysql.Tenho uma tabela onde preciso saber quantas ocorrencias de um certo evento aconteceram em um dia.Para isto estou dando um select na ocorrencia e agrupando pela data.Acontece que o campo data inclui data/hora e sendo assim, datas iguais tem horarios diferentes e não agrupam.Como consigo dar um "cut" somente nos caracteres que eu quero ou seja, na data e conseguir contar e agrupar com sucesso?Vejam a sintaxe, o exemplo de dados que retorna.Obrigado !!!William.SELECT `date_p` , COUNT( * ) FROM `orders` WHERE`orders_status` = "3" GROUP BY `date_p`E ele me retorna o seguinte valor por exemplo: date_p COUNT(*) 2003-12-10 00:12:47 1 2003-12-11 09:14:07 1 2003-12-11 16:58:08 1As duas ultimas ocorrencias são da mesma data e sendo assim, preciso agrupa-las, desconsiderando o horario.já tentei algo com o date(expr) mas não deu resultado, talvez eu tenha errado a sintaxe.Valeu. Link para o comentário Compartilhar em outros sites More sharing options...
0 Guilherme014 Postado Março 19, 2005 Denunciar Share Postado Março 19, 2005 Como consigo dar um "cut" somente nos caracteres que eu quero ou seja, na data e conseguir contar e agrupar com sucesso?se você puder separar a data da hora ficaria melhor....E ele me retorna o seguinte valor por exemplo:date_p COUNT(*)2003-12-10 00:12:47 12003-12-11 09:14:07 12003-12-11 16:58:08 1não entendi pelo que você falou esta certo Link para o comentário Compartilhar em outros sites More sharing options...
0 WilliamScriptBrasil Postado Março 20, 2005 Autor Denunciar Share Postado Março 20, 2005 (editado) oi guilherme...sim, o resultado que retorna desta query está correto.o problema é que não é isto que eu preciso.eu preciso apenas do valor data: 2003-12-10como eu consigo "corta-lo" do campo data hora na query?ex:2003-12-10 12003-12-11 12003-12-11 1valeu.EDITANDO-----------Consegui pegar o que preciso (No MyAdmin)So que agora não consigo ler o resultado no php.Estou setando o sql, mas não consigo pegar o resultado... como faco?$sql = "SELECT COUNT(date_p) FROM tabela.orders WHERE orders_status = '3' AND LEFT(date_p,10) = "2003-12-11" GROUP BY LEFT(date_p,10)";$res = mysql_query($sql);e o que mais?Preciso deste valor (numero de ocorrencias) para mostrar na tela... -----Não poste duas vezes seguidas no mesmo topicos, use o botão Editar Editado Março 21, 2005 por Guilherme014 Link para o comentário Compartilhar em outros sites More sharing options...
0 Guilherme014 Postado Março 21, 2005 Denunciar Share Postado Março 21, 2005 pelo que entendi$sql = "SELECT COUNT(date_p) FROM tabela.orders WHERE orders_status = '3' AND LEFT(date_p,10) = "2003-12-11" GROUP BY LEFT(date_p,10)";$res = mysql_query($sql);$date_p = $res["date_p"];tenta ae qualquer coisa posta ai.... Link para o comentário Compartilhar em outros sites More sharing options...
0 WilliamScriptBrasil Postado Março 21, 2005 Autor Denunciar Share Postado Março 21, 2005 não me retorna nada dou um echo e não tem nada no $date_pe quando rodo a query pelo myadmin eu tenho o valor 1 Link para o comentário Compartilhar em outros sites More sharing options...
0 Guilherme014 Postado Março 21, 2005 Denunciar Share Postado Março 21, 2005 não me retorna nada dou um echo e não tem nada no $date_pe quando rodo a query pelo myadmin eu tenho o valor 1 coloque a sentença da query que você colocou e aonde você colocou a na tela. Link para o comentário Compartilhar em outros sites More sharing options...
0 WilliamScriptBrasil Postado Março 21, 2005 Autor Denunciar Share Postado Março 21, 2005 (editado) Ola Guilherme.Deixa eu explicar então o que estou fazendo:Tenho uma aplicacao que contabiliza as visitas de meu site e estouincluindo uma nova informacaonela (que esta obviamente em outra tabela) que é "Quantas vendasfiz naquela data" , para que eu possa saber o numero de visitas(versus) o numero de vendas realizadas.Para montar o calendario o script original utiliza o seguinte codigo : for ($j = 0; $j < 31; $j++) { if ($j < $cnt_cache) { $day = date("D", mktime(12,0,0,$Month, $j+1, $Year)); $td_color = (($day == "Sat")|| ($day == "Sun")) ? "ref" : "color2"; $buffer .= "<td class=\"$td_color\" align=\"center\">"; // values for logs-by-day in dspLogs.php $from_y = $Year; $from_m = $Month; $from_d = $j+1; $to_y = $from_y; $to_m =$from_m; $to_d = $from_d; $val = $cache[$j];/////////////// ALTERACOES $datavenda = "$from_y-$from_m-$from_d"; $sql = "SELECT COUNT(date_p) FROM tabela1.orders WHERE orders_status = '3'AND LEFT(date_p,10) = $datavenda GROUP BY LEFT(date_p,10)"; $res = mysql_query($sql); $pvenda = $res["date_p"]; $buffer .= ($val == 0) ? " " : "<a href=\"".INC_COOKIES."?action=datevisits&from_y=$from_y&from_m=$from_m&from_d=$from_d&to_y=$from_y&to_m=$from_m&to_d=$from_d\">$val</a>$pvenda";Note que estou "apenas lendo" outra tabela e quero pegar o resultado delapara imprimir em $pvenda na ultima linha.Obrigado,William. Editado Março 21, 2005 por Guilherme014 Link para o comentário Compartilhar em outros sites More sharing options...
0 Guilherme014 Postado Março 21, 2005 Denunciar Share Postado Março 21, 2005 É o seguinte, quando chegar em casa vou pegar seu codigo que esta aqui e vou tentar ver os erros que está dando, ou então outra pessoa poderá responder. Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
WilliamScriptBrasil
Hello crazy people !
Estou com uma duvida neste meu inicio com o mysql.
Tenho uma tabela onde preciso saber quantas ocorrencias de um certo evento aconteceram em um dia.
Para isto estou dando um select na ocorrencia e agrupando pela data.
Acontece que o campo data inclui data/hora e sendo assim, datas iguais tem horarios diferentes e não agrupam.
Como consigo dar um "cut" somente nos caracteres que eu quero ou seja, na data e conseguir contar e agrupar com sucesso?
Vejam a sintaxe, o exemplo de dados que retorna.
Obrigado !!!
William.
SELECT `date_p` , COUNT( * ) FROM `orders` WHERE
`orders_status` = "3" GROUP BY `date_p`
E ele me retorna o seguinte valor por exemplo:
date_p COUNT(*)
2003-12-10 00:12:47 1
2003-12-11 09:14:07 1
2003-12-11 16:58:08 1
As duas ultimas ocorrencias são da mesma data e sendo assim, preciso agrupa-las, desconsiderando o horario.
já tentei algo com o date(expr) mas não deu resultado, talvez eu tenha errado a sintaxe.
Valeu.
Link para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados