2014-07-01 39 views
0

在我的網站中,我根據它添加到數據庫的日期顯示了一些數據。它會在最近7天添加的產品上放置一個「NEW」標籤。代碼完美工作直到今天。現在它顯示錯誤的值。我使用下面的代碼來獲得差異datetime差異在mysql中顯示錯誤的值

DATE(stored_date_time) - DATE_SUB(CURDATE(), INTERVAL 7 DAY) AS days 

並且此代碼的​​輸出爲77。但是,今天的日期是2014-07-01

,同時呼應的DATE(stored_date_time)值它給人的輸出

2014-07-01 

DATE_SUB(CURDATE(), INTERVAL 7 DAY)呼應使輸出

2014-06-24 

我找不到什麼是錯我的代碼。請幫助..

回答

1

而是減去這些日期的,它會更好,如果你使用DATEDIFF,如下圖所示:

SELECT DATEDIFF(day,'2008-06-05','2008-08-05') AS DiffDate 

將返回61 ..更多信息func_datediff

+0

謝謝你的答案..它的作品完美... – Arun

1

嘗試用DATEDIFF功能。

SELECT DATEDIFF(DATE(stored_date_time),DATE_SUB(CURDATE(), INTERVAL 7 DAY)) AS days 
1

Arun, 既然你問你的代碼有什麼問題,

select date1 - date2 as days; 

這實際上並沒有意義。數字格式爲 的日期值僅形成爲「yyyymmddhhmmss」。所以它包含與字符串 相同的信息,但不是使用字符,而是每個數字實際上是一個整數 。該格式可能對某人有用,但不能使用 該格式來計算差異。

基本上我想說的是,如果上面的查詢運行的話說 '2014-07-02'和'2014-06-22',你會得到80結果。其實

20140702-20140622 =80. 

所以就像你已經在另一篇文章上提出建議,使用datediff()函數。

+0

非常感謝...現在清楚發生了什麼... :) – Arun