簡體   English   中英

在 mysql 中獲取更新時間戳早於 1 天的行

[英]Fetching rows with updated at timestamp older than 1 day in mysql

我有一個架構如下的表:

mysql> desc a;
  +---------------+------------------+------+-----+---------+----------------+
| Field         | Type             | Null | Key | Default | Extra          |
+---------------+------------------+------+-----+---------+----------------+
| id            | int(11) unsigned | NO   | PRI | NULL    | auto_increment |
| created_at    | int(11)          | YES  |     | NULL    |                |
| updated_at    | int(11)          | YES  |     | NULL    |                |

updated_at我捕獲時間戳。

現在我想用updated_at < NOW() - INTERVAL 1 DAY獲取所有行。

為此,我編寫了以下查詢,從上一小時添加的 Fetching rows中獲取想法:

mysql> select count(*) from a where DATE(updated_at) < DATE_SUB(NOW(),INTERVAL 1 DAY);
+----------+
| count(*) |
+----------+
|        0 |
+----------+

雖然有很多行更新為 2 歲的時間戳,但我在這里得到 0。

您不能在 integer 時間戳值上使用DATE 您必須使用FROM_UNIXTIME將其轉換為DATE

SELECT COUNT(*) 
FROM a
WHERE FROM_UNIXTIME(updated_at) < NOW() - INTERVAL 1 DAY

請注意,您不必使用DATE_SUB減去間隔,您可以直接編寫算術。

暫無
暫無

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

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