turok 0 Denunciar post Postado Novembro 11, 2004 Quero mostrar no site somente registros programados para serem mostrado em determinada data. Não estou conseguindo fazer a diferença. ex: semana atual compreende de 2004-11-08 a 2004-11-14 . - preciso retornar somente registro com ano e mês igual. - preciso retornar somente os últimas registros desta semana (do dia 08 ao dia 11). PHP [/tr][tr]SELECT *FROM t_boletim WHERE DATE ( NOW() ) - t_boletim_dta_envio <=7[/tr] - tentei usar uma função DATEDIFF que faz a diferença mas o mysql que uso é o 3.(...) e não funciona. http://forum.imasters.com.br/public/style_emoticons/default/upset.gif Compartilhar este post Link para o post Compartilhar em outros sites
walace 1 Denunciar post Postado Novembro 11, 2004 Para retornar o registro com o mes e ano atual: select campo1,campodata from tabela where (YEAR(campodata) = YEAR(now())) and (MONTH(campodata) = MONTH(now())) - preciso retornar somente os últimas registros desta semana (do dia 08 ao dia 11).Neste caso você sabe quais as datas ? Se souber coloca between <ini> and <fim>Se não explica melhor o problema com as semanas. Compartilhar este post Link para o post Compartilhar em outros sites
turok 0 Denunciar post Postado Novembro 11, 2004 Neste caso você sabe quais as datas ? Se souber coloca between <ini> and <fim> Não sei. Preciso mostra os boletins da semana corrente.Os boletins ou mensagens são cadastrados no banco com uma data, qualquer data.ex: cadastrei uma mensagem para ser mostrada no site no dia 12-11-2004 (amanhã).mas no banco já tinham mensagens cadastradas para serem mostradas no dia 08-11, 09-11, 10-11. Datas que não são fixas, quem cadastra é que define. Preciso fazer um select de todas as mensagens que já foram visualizadas esta semana. No caso seria as mensagens com data: 08-11 a 11-11-04.espero não ter complicado! Compartilhar este post Link para o post Compartilhar em outros sites
walace 1 Denunciar post Postado Novembro 11, 2004 Dá uma pesquisada em http://dev.mysql.com/doc/mysql/en/Date_and..._functions.html. Acredito que montando uma lógica junto com o php você consiga fazer isso. você teria que pegar o dia de hoje (11) e saber qual dia da semana ele é (qui), daí ir retrocedendo esta data até chegar no domingo e aumentando até chegar no sábado, daí você terá as duas datas onde inicia e termina tua semana. Joga estas datas dentro da select e pronto. Tenta aí, qualquer fala amanhã. Compartilhar este post Link para o post Compartilhar em outros sites
turok 0 Denunciar post Postado Novembro 11, 2004 Pensei em fazer isto mas deu erro de sintax, o erro está na parte de ( DAYOFWEEK ), mas não sei porque? select * from t_bomdia_boletim where (YEAR(t_boletim_dta_envio) = YEAR(now())) and ( MONTH ( t_boletim_dta_envio ) = MONTH ( now() ) ) and ( DAYOFWEEK ( t_boletim_dta_envio ) ) = DAYOFWEEK ( now() ) ) Compartilhar este post Link para o post Compartilhar em outros sites
turok 0 Denunciar post Postado Novembro 11, 2004 Consegui!!!!!!!!! com sua ajuda é claro!!!!!! :D Valeu muito obrigado pela ajuda select * from t_boletim where (YEAR(t_boletim_dta_envio) = YEAR(now())) and ( MONTH ( t_boletim_dta_envio ) = MONTH ( now() ) ) and ( DAYOFWEEK ( t_boletim_dta_envio ) <= DAYOFWEEK ( now() ) ) Compartilhar este post Link para o post Compartilhar em outros sites
walace 1 Denunciar post Postado Novembro 11, 2004 Potz ! Legal, mas <= dayofweek(now) não vai imprimir TODAS as datas menores ?Ou vai imprimir só desta semana ? Faz um teste e coloca uma data posterior no teu banco pra ver o que acontece. Compartilhar este post Link para o post Compartilhar em outros sites
turok 0 Denunciar post Postado Novembro 12, 2004 Deu um pq problema. Como tem o sinal de <= DAYOFWEEK ( now() ) )retorna todos os índices da semana que forem menor ou igual ao data data atual. Hoje por exemplo, dia 12, o índice é 6, então é retornado todas as datas que tiverem indices de 0 até 6. As datas do dia 14-11 e 15-11 não são desta semana, mas ele retorna por terem índices 0 e 1 respectivamente. tabela das datas: t_boletim_dta_envio --------------------+ 2004-11-11 2004-11-12 2004-11-14 2004-11-15 --------------------+ Compartilhar este post Link para o post Compartilhar em outros sites
walace 1 Denunciar post Postado Novembro 12, 2004 Dá uma pesquisada em http://dev.mysql.com/doc/mysql/en/Date_and..._functions.html.Acredito que montando uma lógica junto com o php você consiga fazer isso.você teria que pegar o dia de hoje (11) e saber qual dia da semana ele é (qui), daí ir retrocedendo esta data até chegar no domingo e aumentando até chegar no sábado, daí você terá as duas datas onde inicia e termina tua semana.Joga estas datas dentro da select e pronto.Tenta aí, qualquer fala amanhã. É... eu imaginei que iria retornar todos os dias anteriores.Então volto a dizer o que disse antes... montar uma logica em php para pegar o inicio e fim da semana que você quer. Compartilhar este post Link para o post Compartilhar em outros sites
turok 0 Denunciar post Postado Novembro 12, 2004 Agora deu!!!!!!! select * from tabelawhere ( YEAR( campo_dta_envio ) = YEAR(now())) # seleciona todas as datas com anos iguaisand ( MONTH ( campo_dta_envio ) = MONTH ( now() ) ) # seleciona todas as datas com meses iguaisand ( WEEK( campo_dta_envio ) = WEEK( NOW() ) ) # seleciona todas que pertencem a mesma semana Compartilhar este post Link para o post Compartilhar em outros sites
walace 1 Denunciar post Postado Novembro 12, 2004 Ah, então antes você pegava o dia da semana, agora pega o número da semana... pode crer ! Compartilhar este post Link para o post Compartilhar em outros sites