2012-09-03 56 views
0

我想在我的網站上展示未來即將到來的生日,因此請使用出生日期(dateofb) 來訂購它們,下面的查詢不會以dateofb順序顯示出生順序。它使用id順序顯示。如何使用mysql顯示即將到來的生日?

「的dateofb包含一組出生日期這種格式1970年9月2日。」

<?php $sel = $db->query("select * from mov_biography order by dateofb asc limit 0,5"); 
while($row=mysql_fetch_array($sel)){ 

echo ($row['name']); } ?> 
+0

這是因爲你存儲日期錯誤,你應該將它們存儲在appropr日期類型 – 2012-09-03 20:17:55

+0

建議適當的日期類型 – ADHI

+0

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-types.html – 2012-09-03 20:22:14

回答

0

你可以做sumthing這樣...

SELECT 

    , MONTH(dateofb) AS month 
    , DAY(dateofb) AS day 

FROM <table_name> 
WHERE birthday BETWEEN NOW() AND DATE_ADD(NOW, INTERVAL 90 DAY) 
ORDER BY Birthday DESC 
+0

發佈不會工作,而日期是存儲爲文本,如果這是過度殺傷 – 2012-09-03 20:34:10

0

使用默認的排序,它看起來像下面這樣:

mysql> SELECT column FROM table_name ORDER BY column; 

column 
====== 
100 
1000 
10000 
200 
2000 
20000 
... 

Now with "... ORDER BY column+0", I get it sorted right: 

mysql> SELECT column FROM table_name ORDER BY column+0; 

column 
====== 
100 
200 
1000 
2000 
10000 
20000 
... 

This is a quick fix instead of sorting to CAST operator. 
+0

如果不是你必須使用CAST操作符的文本到SORT ...使用Mysql手冊。希望能幫助到你! – Rush

相關問題