首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建昨天的时间戳,并对该范围内的所有时间戳进行分组

问创建昨天的时间戳,并对该范围内的所有时间戳进行分组
EN

Stack Overflow用户
提问于 2013-03-14 21:37:37
回答 3查看 43关注 0票数 0

我有一个充满数据的数据库,其中也有一个时间戳字段。我尝试做的是计算字段中的记录数,按时间戳分组,但四舍五入为天数。

我现在有一段代码,如下所示:

代码语言:javascript
复制
$days_ago7a = date('Y-m-d', mktime(0, 0, 0, date("m") , date("d") - 7, date("Y")));
$result = mysql_query("SELECT * FROM all_count WHERE date='$days_ago7a'");
$num_rows37 = mysql_num_rows($result);

我想做同样的事情,只是将日期替换为时间戳(它也在数据库中),并对24小时内的所有时间戳进行分组。

这有可能吗?

好的,我已经把代码改成这样,但是它没有返回任何结果?

代码语言:javascript
复制
$result = mysql_query("select date( timestamp ), count(*) from all_count group by date(   timestamp );") 
 or die(mysql_error());  
  while($row = mysql_fetch_array( $result )) { 
  echo "$timestamp";
  }
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-14 21:45:20

要按时间戳的日期分组,请执行以下操作:

代码语言:javascript
复制
select date( timestampfield ), count(*) from all_count group by date( timestampfield );

要获取昨天的计数:

代码语言:javascript
复制
select count(*) from all_count where date(timestampfield) = date_sub( curdate(), INTERVAL 1 day );
票数 2
EN

Stack Overflow用户

发布于 2013-03-14 21:56:43

我猜只在日期(而不是时间)范围内使用时间戳的更简单的方法是这样做:

代码语言:javascript
复制
$date = '2012-05-20 11:25:12';
$date = strtotime($date);
$begginingOfDay = date('Y', $date).'-'.date('m', $date).'-'.date('d', $date).' 00:00:00'
$timestamp = strtotime($begginingOfDay);

现在,您有了包含当日乞讨的时间戳的$timestamp。然后你可以随时随地移动,例如减去几天:

代码语言:javascript
复制
//timestamp points to 2012-05-20 00:00:00
$timestampWeekBefore = $timestamp - 7 * 24 * 60 * 60; //date - 7 days * 24 hours * 60 minutes * 60 seconds

将会给你2012-05-14 00:00:00。操作之后,您可以使用适当的格式调用date以放置在页面或查询上。

票数 0
EN

Stack Overflow用户

发布于 2013-03-14 22:02:43

MySQL date functions to the rescue!

TO_DAYS( date )给定日期日期,返回日期数字(从0年开始的天数)。

mysql> SELECT TO_DAYS(950501);-> 728779 mysql> SELECT TO_DAYS('2007-10-07');-> 733321

我想你可以想出其他的办法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15410876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档