如何從服務器的數據庫獲取一天的舊記錄。我有使用日期時間插入記錄。下面是記錄的樣子。從數據庫獲取一天的舊記錄
2013-01-15 23:44:02
我有使用的strtotime(「 - 19天」),但它返回本地系統再寄一次希望得到一個天大的記錄,並做一些東西,在條件..
感謝名單提前..
如何從服務器的數據庫獲取一天的舊記錄。我有使用日期時間插入記錄。下面是記錄的樣子。從數據庫獲取一天的舊記錄
2013-01-15 23:44:02
我有使用的strtotime(「 - 19天」),但它返回本地系統再寄一次希望得到一個天大的記錄,並做一些東西,在條件..
感謝名單提前..
您將使用sql查詢將其歸檔。
SELECT * FROM tablename WHERE DATE(datefield)=DATE_ADD(CURDATE(),INTERVAL 1 DAY)
CURDATE()
將返回當前Mysql Server
時間。
where date(date_column) = DATE_sub(NOW(), INTERVAL 1 DAY);
有沒有' DATE_SUM'功能 –
這裏最好的答案。 – skrilled
使用DATE_ADD
SELECT *
FROM tablename
WHERE DATE(dateCol) = DATE_ADD(CURDATE(),INTERVAL -1 DAY)
你是不是指-1天,還是我誤解了OP? –
@lc。你是對的。 –
SELECT * FROM email_record WHERE DATE(sent_mail)= DATE_ADD(CURDATE(),INTERVAL -1 DAY)。有許多一天的記錄,但是這個查詢給了我空的結果集。 – Jimmy
您可以使用此功能DATE_SUB(日期,INTERVAL expr的類型)
http://www.w3schools.com/sql/func_date_sub.asp
在W3Schools的提供
示例假設我們有以下的「訂單」表:
Columns: OrderId, ProductName, OrderDate
Values: 1, Jarlsberg Cheese, 2008-11-11 13:23:44.657
現在,我們希望從「訂購日期」日期減去5天。
我們使用下面的SELECT語句:
SELECT OrderId,DATE_SUB(OrderDate,INTERVAL 5 DAY) AS SubtractDate
FROM Orders
SELECT * from table WHERE datefield < DATE_SUB(NOW(), INTERVAL 1 DAY)
你正在比較一個字符串。 –
@JW這個查詢工作正常。日期列以dateTime格式顯示。 – cartina
現在,但你以前的答案不會。你正在關注這個''DATE_SUB(NOW(),INTERVAL 1 DAY)'' –
$yesterday = strtotime('Y-m-d h:i:s','yesterday');
SELECT * FROM tablename WHERE datefield = '$yesterday'
的strtotime是從PHP服務器的時候,你應該使用類似的日期時間函數在mysql中做的比較 – ajreal