萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> mysql查詢在某個時間內的數據sql語句

mysql查詢在某個時間內的數據sql語句

本文章來給在家介紹一個簡單的mysql是查詢在某個時間內的數據sql語句,希望結教程對各位朋友有所幫助。

比如我這邊查詢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

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

copyright © 萬盛學電腦網 all rights reserved