比如我這邊查詢jz_user表使用者建立時間大於四月一號到四月三十號為例
| 代碼如下 |
複製代碼 |
select FROM_UNIXTIME(create_time),user_id from jz_user Where DATE_FORMAT(FROM_UNIXTIME(create_time),'%Y-%m-%d') <= DATE_FORMAT("2013-4-30",'%Y-%m-%d') AND DATE_FORMAT(FROM_UNIXTIME(create_time),'%Y-%m-%d') >= DATE_FORMAT("2013-4-1",'%Y-%m-%d') |
TO_DAYS(date) 函數
給定一個日期date,返回一個天數(從年份0開始的天數)。
比如下面的例子:
| 代碼如下 |
複製代碼 |
mysql> SELECT TO_DAYS('2009-08-07'); +-----------------------+ | TO_DAYS('2009-08-07') | +-----------------------+ | 733991 | +-----------------------+ 1 row in set
|
TO_DAYS() 不用於陽曆出現(1582)前的值,原因是當日曆改變時,遺失的日期不會被考慮在內。
請記住,MySQL“日期和時間類型”中的規則將日期中的二位元年份值轉化為四位。例如,‘2010-08-07′和 ‘10-08-07′ 被視為同樣的日期:
| 代碼如下 |
複製代碼 |
mysql> SELECT TO_DAYS('2009-08-07'),TO_DAYS('09-08-07'); +-----------------------+---------------------+ | TO_DAYS('2009-08-07') | TO_DAYS('09-08-07') | +-----------------------+---------------------+ | 733991 | 733991 | +-----------------------+---------------------+ 1 row in set
|
對於1582年之前的日期(或許在其它地區為下一年),該函數的結果實不可靠的。
now() 函數
NOW() 函數返回當前的日期和時間。
| 代碼如下 |
複製代碼 |
mysql> select (now()); +---------------------+ | (now()) | +---------------------+ | 2010-08-26 21:18:44 | +---------------------+ 1 row in set |
to_days(current_date)也可以實現上面的功能。
| 代碼如下 |
複製代碼 |
mysql> select to_days(current_date); +-----------------------+ | to_days(current_date) | +-----------------------+ | 734375 | +-----------------------+ 1 row in set |
結果
現在我們可以得出問題的答案了:
| 代碼如下 |
複製代碼 |
select * from news where to_days(now())-to_days(newsdate) < 30 order by view desc limit 0, 10 |
可以獲得一個月內瀏覽數最高的十條記錄。