[英]Find records with a time field in the last 24 hours
在我的SQL查詢中,如何在過去24小時內找到記錄? 我正在使用time()函數插入db。 我正在使用時間戳,時間以這種格式存儲.Eg 1332673046
你可以使用BETWEEN
SELECT * FROM users
WHERE created_at BETWEEN '2012-03-31 00:00:00 UTC' AND '2012-03-31 23:59:59 UTC'
select somefield from yourtable where timefield >= subtime(current_timestamp(), '1 00:00:00');
我不確定您是否希望在同一日歷日內查看,或者您在過去24小時內查看,所以這是我通常對這兩種情況所做的事情:
a)在同一日歷日:
CONVERT(VARCHAR(8), myTable.myDate, 112) = CONVERT(VARCHAR(8), GETDATE(), 112)
b)日期在過去24小時內(含)
DATEDIFF(hour, myTable.myDate, GETDATE()) <= 24
簡單的DATE算法會做,
SELECT *
FROM `table1`
WHERE `time_col` BETWEEN NOW() AND NOW()- INTERVAL 24 HOURS;
鑒於您將日期存儲為unix時間戳,那么您需要像這樣的UNIX_TIMESTAMP
SELECT
// fields you need
FROM `table`
WHERE
`date_field` BETWEEN UNIX_TIMESTAMP( DATE_SUB(NOW() INTERVAL 24 HOUR) ) AND UNIX_TIMESTAMP()
您可能需要考慮以MySQL DATETIME格式存儲日期,因為它使MySQL中的日期計算更容易。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.