MySQL的DATEDIFF
函數允許您在查詢中減去2個日期。
http://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_datediff
DATEDIFF()
將返回EXPR1 - 表達式2表示爲從一個日期至另一個在天的值。 expr1和expr2是日期或日期和時間表達式。計算中只使用數值的日期部分。
例如:
SELECT some_id, date_column
FROM date_table
WHERE DATEDIFF(CURDATE(), date_column) = 30
你也可以同時選擇30到60天這樣的,也有60天的截止日期,以便它不是搜索整個表:
SELECT some_id, date_column
FROM date_table
WHERE date_column>=DATE_SUB(CURDATE(), INTERVAL 60 DAY)
AND DATEDIFF(CURDATE(), date_column) IN (30, 60)
由於我對自己的要求有所瞭解,因此您可能還希望這樣做,它會在結果集中將結果返回爲「是」或「否」:
SELECT some_id, date_column,
CASE DATEDIFF(CURDATE(), date_column)
WHEN 60 THEN 'Yes'
WHEN 30 THEN 'Yes'
ELSE 'No'
END CASE AS is_3060_day
FROM date_table
WHERE date_column>=DATE_SUB(CURDATE(), INTERVAL 60 DAY)
另外,如果你想做到這一點在PHP端,你可以使用PHP的date_diff
功能:
http://php.net/manual/en/function.date-diff.php
function dateDifference($date_1 , $date_2 , $differenceFormat = '%a')
{
$datetime1 = date_create($date_1);
$datetime2 = date_create($date_2);
$interval = date_diff($datetime1, $datetime2);
return $interval->format($differenceFormat);
}
$result = dateDifference($date1, $date2)
if ($result==30 || $result==60) {
// Do something
}
http://www.w3schools.com/sql/func_datediff.asp。這將幫助您通過查詢直接獲取數據 –
樣本數據和期望的結果將真正幫助您解釋您想要做什麼。 –
@GordonLinoff我在8月份的帖子中有一個例子。我希望有一個表格可以導出過去30天內有30天價值爲 –