ciao, il codice che posto (e che funziona) permettere di ricavare i 2 compleanni più vicini alla data odierna...la domanda è questa: esiste una query più snella per fare la stessa cosa??![]()
codice:/* CREATE TABLE `tabella` ( `nome` varchar(10) default NULL, `nato_il` date NOT NULL default '0000-00-00' ) TYPE=ISAM; INSERT INTO `tabella` VALUES ('Paolo', '1980-04-31'); INSERT INTO `tabella` VALUES ('Andrea', '1956-12-05'); INSERT INTO `tabella` VALUES ('Gianni', '1978-09-14'); INSERT INTO `tabella` VALUES ('Anna', '1994-10-23'); INSERT INTO `tabella` VALUES ('Luca', '1972-08-09'); */ $sql="SELECT nome,DATE_FORMAT(nato_il,'%d/%m/%y') AS data, DATE_FORMAT(nato_il + INTERVAL IF( DATE_FORMAT(nato_il + INTERVAL YEAR(NOW()) - YEAR(nato_il) YEAR,'%Y-%m-%d') >= CURDATE() ,YEAR(NOW()) - YEAR(nato_il), YEAR(NOW()) - YEAR(nato_il)+1) YEAR,'%Y-%m-%d') AS datanorma FROM tabella ORDER BY datanorma ASC LIMIT 0,2"; $st=mysql_query($sql) or die(mysql_error()); while ($row=mysql_fetch_assoc($st)) echo $row['nome']." ".$row['data']." \n"; //Anna 23/10/94 //Andrea 05/12/56

Rispondi quotando