Dadocoxa 0 Denunciar post Postado Agosto 7, 2009 Mais uma vez apelo aos amigos que sabem ! Na minha tabela tenho um campo chamado data tipo DATE. quero fazer uma consulta de noticia que aconteceram a um ano atras para aquele mesmo dia Tou apanhando .... se alguem puder me ajudar agradeco sql = "select * from tabela where data = ???? "; Compartilhar este post Link para o post Compartilhar em outros sites
~TiuTalk~ 7 Denunciar post Postado Agosto 7, 2009 Dá pra fazer com PHP + MySQL mas eu prefiro direto no MySQL... Para datas salvas como AAAA-MM-DD HH:MM:SS use: SELECT * FROM `noticias` WHERE `data` = DATE_SUB(NOW(), INTERVAL 1 YEAR) Para datas salvas como AAA-MM-DD (sem hora), use: SELECT * FROM `noticias` WHERE `data` = DATE_SUB(CURDATE(), INTERVAL 1 YEAR) No PHP seria: <?php // AAAA-MM-DD HH:MM:SS $data = date('Y-m-d H:i:s', strtotime('-1 year')); $sql = "SELECT * FROM `noticias` WHERE `data` = '" . $data . "'"; // AAAA-MM-DD $data = date('Y-m-d', strtotime('-1 year')); $sql = "SELECT * FROM `noticias` WHERE `data` = '" . $data . "'"; ?>Lembrando que: se você usar o formato AAAA-MM-DD HH:MM:SS provavelmente vai ter que cobrir todo o dia fazendo um BETWEEN entre 00:00:00 e 23:59:59 daquele dia. http://forum.imasters.com.br/public/style_emoticons/default/graduated.gif Compartilhar este post Link para o post Compartilhar em outros sites
Dadocoxa 0 Denunciar post Postado Agosto 7, 2009 Opa deu certinho Valew Em 07/08/2009 at 08:57, '~TiuTalk~' disse: Dá pra fazer com PHP + MySQL mas eu prefiro direto no MySQL... Para datas salvas como AAAA-MM-DD HH:MM:SS use: SELECT * FROM `noticias` WHERE `data` = DATE_SUB(NOW(), INTERVAL 1 YEAR) Para datas salvas como AAA-MM-DD (sem hora), use: SELECT * FROM `noticias` WHERE `data` = DATE_SUB(CURDATE(), INTERVAL 1 YEAR) No PHP seria: <?php // AAAA-MM-DD HH:MM:SS $data = date('Y-m-d H:i:s', strtotime('-1 year')); $sql = "SELECT * FROM `noticias` WHERE `data` = '" . $data . "'"; // AAAA-MM-DD $data = date('Y-m-d', strtotime('-1 year')); $sql = "SELECT * FROM `noticias` WHERE `data` = '" . $data . "'"; ?>Lembrando que: se você usar o formato AAAA-MM-DD HH:MM:SS provavelmente vai ter que cobrir todo o dia fazendo um BETWEEN entre 00:00:00 e 23:59:59 daquele dia. Compartilhar este post Link para o post Compartilhar em outros sites