如何根据相同的日子分类几个时间戳?

时间:2015-11-25 14:30:54

标签: php mysql datetime

我有一张这样的表:

// Times
+----+-------------+
| id |  timestamp  |   // echo date('d/m/Y', $time)
+----+-------------+
| 1  | 1448460315  |   //  25/11/2015   -- today
| 2  | 1428440265  |   //  07/04/2015
| 3  | 1418160365  |   //  09/12/2014
| 4  | 1448460215  |   //  25/11/2015   -- today
| 5  | 1438440265  |   //  01/08/2015
| 6  | 1438340265  |   //  31/07/2015
| 7  | 1438437265  |   //  01/08/2015
| 8  | 1448370315  |   //  24/11/2015   -- yesterday
| 9  | 1148370315  |   //  23/05/2006
| 10 | 1447870315  |   //  18/11/2015   -- last week ({11-18}/11/2015)
+----+-------------+

注意: timestamp列中的所有数字都是使用PHP的time()函数构成的。

现在我想知道,如何选择今天 的所有行或昨天上周的所有行? *(应该注意,在MySQL NOW()中与time()相同)。*

例如:

// Times - Today
+----+-------------+
| id |  timestamp  |   // echo date('d/m/Y', $time)
+----+-------------+
| 1  | 1448460315  |   //  25/11/2015   -- today
| 4  | 1448460215  |   //  25/11/2015   -- today
+----+-------------+

2 个答案:

答案 0 :(得分:1)

您需要使用MySQL BETWEEN函数

使用PHP从一天的午夜到当天的11:59:59获取时间戳

date_default_timezone_set('America/Chicago');
$day_begins = strtotime(date('Y-m-d 00:00:00', strtotime('today')));
$day_ends = strtotime(date('Y-m-d 11:59:59', strtotime('today')));


-- sql code will look like
SELECT id FROM table WHERE `timestamp` BETWEEN ($day_begins AND $day_ends)

答案 1 :(得分:0)

有类似的东西:

SELECT
  id,
  timestamp
FROM
  table
WHERE
  DATE_FORMAT(FROM_UNIXTIME(`timestamp`), '%y-%m-%d') = (DATE_FORMAT(NOW(), '%y-%m-%d') - INTERVAL 1 DAY)
相关问题