MySQL擷取某個時間範圍內的資料 TO_DAYS(date)函數與now()函數

來源:互聯網
上載者:User

標籤:

有這樣一個需求,我們需要獲得某個時間段內所有資料記錄,比如最近一個月內的新聞,然後再在這個資料集合中進行排序,看哪個新聞的點擊率最高。現在問題是,如何獲得那個時間段。MySQL已經有些函數可以協助我們,先看看這些函數吧。

TO_DAYS(date) 函數

給定一個日期date,返回一個天數(從年份0開始的天數)。

比如下面的例子:

1 mysql> SELECT TO_DAYS(‘2009-08-07‘);
2 +-----------------------+
3 | TO_DAYS(‘2009-08-07‘) |
4 +-----------------------+
5 |                733991 |
6 +-----------------------+
7 1 row in set

TO_DAYS() 不用於陽曆出現(1582)前的值,原因是當日曆改變時,遺失的日期不會被考慮在內。

請記住,MySQL“日期和時間類型”中的規則將日期中的二位元年份值轉化為四位。例如,‘2010-08-07′和 ‘10-08-07′ 被視為同樣的日期:

1 mysql> SELECT TO_DAYS(‘2009-08-07‘),TO_DAYS(‘09-08-07‘);
2 +-----------------------+---------------------+
3 | TO_DAYS(‘2009-08-07‘) | TO_DAYS(‘09-08-07‘) |
4 +-----------------------+---------------------+
5 |                733991 |              733991 |
6 +-----------------------+---------------------+
7 1 row in set

對於1582年之前的日期(或許在其它地區為下一年),該函數的結果實不可靠的。

now() 函數

NOW() 函數返回當前的日期和時間。

1 mysql> select (now());
2 +---------------------+
3 | (now())             |
4 +---------------------+
5 | 2010-08-26 21:18:44 |
6 +---------------------+
7 1 row in set

to_days(current_date)也可以實現上面的功能。

1 mysql> select to_days(current_date);
2 +-----------------------+
3 | to_days(current_date) |
4 +-----------------------+
5 |                734375 |
6 +-----------------------+
7 1 row in set
結果

現在我們可以得出問題的答案了:

1 select * from news where to_days(now())-to_days(newsdate) < 30 order by view desc limit 0, 10

可以獲得一個月內瀏覽數最高的十條記錄。

 

轉至(http://www.nowamagic.net/librarys/veda/detail/415)

(轉)MySQL擷取某個時間範圍內的資料 TO_DAYS(date)函數與now()函數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.