2012-11-02 136 views
6

我从表中检索数据并显示条目的总数。我想要做的是显示今天,昨天和本月的日期总数。该表使用unix时间戳格式(例如,1351771856)。mysql日期显示结果今天/昨天/星期

目前我使用这条线显示今天的结果:

AND comment_date > UNIX_TIMESTAMP() - 24 * 3600"; 

但是这给了我只是过去24小时中的条目。

:所以我们说上周五,下午17:00 - 它让我从周四下午17:00计数至周五下午17:00

我想要什么是得到的结果对于

  • 周四00:00:00 - 23:59:59(在这种情况下,昨天)
  • 结果今天(00:00:00 - 23:59:59)
  • 和最后一周,结果开始o ñ星期一00:00:00直到“今天”(本例中为星期五)。

我无法在MySQL文档中找到实现此目的的方法。

+0

“真实”值是什么意思? –

+0

例如:comment_date = $ today或comment_date = $ yesterday,comment_date = $ this_month –

+0

没有“today”或“yesterday”变量,您必须使用时间戳或其他日期类型(或mysql日期差异if你使用日期时间)。你的方法是我看到结果的唯一方法。 – Serg

回答

6

这MySQL的代码应该为你工作:

// Today 
AND DATE(from_unixtime(comment_date)) = CURRENT_DATE 

// Yesterday 
AND DATE(from_unixtime(comment_date)) = DATE_SUB(CURRENT_DATE,INTERVAL 1 DAY) 

// This week 
AND YEARWEEK(from_unixtime(comment_date), 1) = YEARWEEK(CURRENT_DATE, 1) 

// This month 
AND YEAR(from_unixtime(comment_date)) = YEAR(CURRENT_DATE) 
AND MONTH(from_unixtime(comment_date)) = MONTH(CURRENT_DATE) 
+0

这是完美的工作! –

+0

唯一剩下的就是从星期一开始计算“本周” –

+0

@JoachimIsaksson,我试了一下,但由于某种原因使用'@now'给了我一个“500内部服务器错误” –

0

只需使用这样的:

AND comment_date > date_sub(current_date, interval 1 day) 
相关问题