stview 0 Denunciar post Postado Janeiro 10, 2005 Estou com um select meio chato aqui.Eu não posso usar duas vezes o date_sub no mesmo select?"... AND (p.Capa!='1' AND (p.Data_capa>=DATE_SUB(NOW(), INTERVAL ".date("w")." DAY)) AND p.Data_inicio>=DATE_SUB(NOW(), INTERVAL ".date("w")." DAY) AND (p.Sem_expirar='1' OR p.Data_fim>='$t_date')";Ele me resulta null .. mas existe 2 linahs que correspondem .... Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Janeiro 13, 2005 mas.. o valor date("w") está certo ? porque "w" é uma representação numérica do dia da semana função date() http://jp2.php.net/manual/pt_BR/function.date.php exemplo de uso da função DATE_SUB: SELECT data FROM tabela WHERE data < DATE_SUB(NOW(), INTERVAL 1 hour);retorna registros onde data é menor que a hora atual menos 1 hora. referências: http://dev.mysql.com/doc/mysql/en/Date_and_time_types.html http://dev.mysql.com/doc/mysql/en/Date_and..._functions.html Compartilhar este post Link para o post Compartilhar em outros sites
stview 0 Denunciar post Postado Janeiro 13, 2005 Uso do date(w) para o seguinte:Eu quero que me mostre apenas noticias desta semana, verifico que dia da semana é hoje e busco as noticias com intervalo entre hoje e date(w) dias atrás ...Saca?Mas estou tendo problemas com o Date_Sub.Eu preciso fazer a verificação de intervalo de dias duas vezes no mesmo select, mas não consigo usar o date_sub duas vezes.Eu uso date_sub e faço outra verificação tipo data<$hoje e data>$domingo ... saca .. meio rustico .. Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Janeiro 14, 2005 acho que está errado então o modo como você quer filtrar. o que eu entendi é você quer selecionar registros onde a data seja diferente de domingo e estajam dentro da semana atual. É isso?? date("w") como já citei retornará: uma representação numérica do dia da semana 0 (para Domingo) a 6 (para Sábado) referência: http://jp2.php.net/manual/pt_BR/function.date.php você deveria fazer um cálculo antes por exemplo hoje é sexta-feira, dia 14 de Janeiro de 2005 sexta-feira, na função date("w") retorna o valor "5" você deveria verificar qual a representação numérica do dia da semana e fazer uma condicional segundo a crítica que vocÊ quer. deveria usar o betweeen também.. exemplo <? $dif = date("w"); $final = "NOW()"; if($dif==0){ // se igual domingo $dif = 6; $final = "DATE_SUB(NOW(), INTERVAL 1 DAY)"; } $sql = "SELECT data FROM tabela WHERE data BETWEEN DATE_SUB(NOW(), INTERVAL ".$dif." DAY) AND ".$final ; ?> veja como ficaria a query sql se hoje fosse domingo retornaria: SELECT data,nome_usuario FROM usuarios_log WHERE data BETWEEN DATE_SUB(NOW(), INTERVAL 6 DAY) AND DATE_SUB(NOW(), INTERVAL 1 DAY); mas hoje é sexta-feira, então retornará: (para os outros dias tb, exceto domingo) SELECT data,nome_usuario FROM usuarios_log WHERE data BETWEEN DATE_SUB(NOW(), INTERVAL 6 DAY) AND NOW(); acho que é isso o que você quer Compartilhar este post Link para o post Compartilhar em outros sites
stview 0 Denunciar post Postado Janeiro 14, 2005 Não cara ...Uso o DATE_SUB com a seguinte lógica:Hoje é sexta (date(w) = 5), e eu quero apenas noticias desta semana (domingo a sabado) uso então date_sub(now(), interval 5 day) ... ou seja entre hoje e 5 dias atras ...Isso eu tenho certeza que esta certo pq esta funcionando ...O problema é o seguinte, eu tenho 2 campos de datas, e eu não estou conseguindo usar o date_sub duas vezes no mesmo select, se eu usoapenas numa das diretrizes funciona .. se eu utilizo nas duas nãofuniona, e eu seique tem resultado positivo esta busca.Uma pergunta muito importante ... alguem aqui tem certificado mysql ou conhece quem o tenha?Eu nunca conheci ninguém que o tivesse, e considero o site da mysql muito fraco ... o conteúdo é muito superficial ... pra encontra algo concreto sobre o date_sub .. to procurando ate agora ... Compartilhar este post Link para o post Compartilhar em outros sites