簡體   English   中英

sql查詢以獲取未來30天的記錄

[英]sql query to fetch the records of next 30 days

這是我的問題,我想從表中獲取未來30天的記錄。 我的桌子上有一個字段。 例如:在我的表中,我有resource_date ,在此列中,我有許多記錄,從2013-02-052015-10-10 假設,如果我今天登錄該網站(今天的日期是- 16/01/2015年1月16日,它應該獲取接下來15天的記錄,依此類推)。 這個怎么做? 提前致謝

一種方法

SELECT * 
  FROM table1
 WHERE resource_date >= CURDATE() + INTERVAL 1 DAY -- skip today
   AND resource_date < CURDATE() + INTERVAL 17 DAY -- 15 days starting tomorrow

這是一個SQLFiddle演示

在MySQL中,可以使用NOW()函數獲取當前的DATETIME ,並使用INTERVAL關鍵字獲取時間間隔。

因此,要獲取resource_date在未來30天內的記錄,可以使用:

SELECT *
 FROM `my_table_name`
WHERE `resource_date` >= NOW()
  AND `resource_date` < NOW() + INTERVAL 1 MONTH
    ;

實際上,您應該很少使用SELECT * ,並且應該考慮向此查詢添加一個LIMIT ,以防止您的應用程序返回“太大”的結果集。

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html

...
WHERE
'resource_date'> NOW() AND
'resource_date'< DATE_ADD(NOW(), INTERVAL 31 DAY);

小心一點,我想now()需要幾分鍾和幾小時,所以您會錯過一天的一部分。

WHERE resource_date >= CURDATE() AND resource_date <= DATE_ADD(CURDATE(), interval 15 DAY)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM