Heim > Datenbank > MySQL-Tutorial > Hauptteil

MySQL获取某个时间范围内的数据

WBOY
Freigeben: 2016-06-07 16:24:20
Original
1837 Leute haben es durchsucht

有这样一个需求,我们需要获得某个时间段内所有数据记录,比如最近一个月内的新闻,然后再在这个数据集合中进行排序,看哪个新闻的点击率最高。现在问题是,如何获得那个时间段。MySQL已经有些函数可以帮助我们,先看看这些函数吧。 TO_DAYS(date) 函数 给定

有这样一个需求,我们需要获得某个时间段内所有数据记录,比如最近一个月内的新闻,然后再在这个数据集合中进行排序,看哪个新闻的点击率最高。现在问题是,如何获得那个时间段。MySQL已经有些函数可以帮助我们,先看看这些函数吧。

TO_DAYS(date) 函数

给定一个日期date,返回一个天数(从年份0开始的天数)。

比如下面的例子:

mysql> SELECT TO_DAYS('2009-08-07');
+-----------------------+
| TO_DAYS('2009-08-07') |
+-----------------------+
|                733991 |
+-----------------------+
1 row in set
Nach dem Login kopieren

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
Nach dem Login kopieren

对于1582年之前的日期(或许在其它地区为下一年),该函数的结果实不可靠的。

now() 函数

NOW() 函数返回当前的日期和时间。

mysql> select (now());
+---------------------+
| (now())             |
+---------------------+
| 2010-08-26 21:18:44 |
+---------------------+
1 row in set
Nach dem Login kopieren

to_days(current_date)也可以实现上面的功能。

mysql> select to_days(current_date);
+-----------------------+
| to_days(current_date) |
+-----------------------+
|                734375 |
+-----------------------+
1 row in set
Nach dem Login kopieren

结果

现在我们可以得出问题的答案了:

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

可以获得一个月内浏览数最高的十条记录。

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!