簡體   English   中英

從mysql中提取記錄,其中兩個日期之間的差異大於8天

[英]pulling records from mysql where the difference between 2 dates is greater than 8 days

根據我的理解, 根據這份文檔 ,使用INTERVAL 8 DAY將返回大於8天的所有記錄。

在我的語句中, $moztimestampnow是當前格式為2015-05-21的當前日期,並且moztimestamp與數據庫中的列有關,該列包含我需要用來計算的其他更早的日期。

我不確定是否可以在此語句中使用moztimestamp作為列名,但它不起作用。

如何獲得幾天的差異?

$moztimestampnow = date('Y-m-d');
SELECT *,DATEDIFF('$moztimestampnow',moztimestamp) INTERVAL 8 DAYS FROM backlinks WHERE user_id = '$user_id' LIMIT 10

首先,您誤解了文檔。 interval關鍵字用於將值添加到日期。 如果要過濾數據,則需要使用where子句。

在您的情況下,最佳where子句如下所示:

SELECT bl.*, DATEDIFF('$moztimestampnow', moztimestamp)
FROM backlinks bl
WHERE user_id = '$user_id' and
      moztimestamp <= DATE_SUB(CURDATE(), INTERVAL 8 DAY)
LIMIT 10

這可以利用backlinks(user_id, moztimestamp)上的索引backlinks(user_id, moztimestamp) 另外,您可能應該有一個ORDER BY子句。 使用LIMIT時可以預期。

您的語法沒有意義。 嘗試類似:

SELECT *
FROM backlinks
WHERE DATE_SUB(moztimestamp, INTERVAL 8 DAY) > '$moztimestampnow' 
AND user_id = '$user_id'
LIMIT 10

我沒有遵循您的目標,因此您可能必須在第一個WHERE子句中更改順序和方向。

暫無
暫無

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

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