【问题标题】:mysql date show results today/yesterday/weekmysql日期显示今天/昨天/周的结果
【发布时间】:2012-10-22 22:21:15
【问题描述】:

我正在从表中检索数据并显示条目的总和。我想要做的是显示今天、昨天和本月输入的总和。该表使用的是 unix 时间戳格式(例如 1351771856)。

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

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

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

示例:假设现在是星期五,下午 17:00 - 它给了我从星期四 17:00 PM 到星期五 17:00 PM 的计数

我想要的是得到结果

  • 星期四 00:00:00 - 23:59:59(本例中为昨天)
  • 今天的结果 (00:00:00 - 23:59:59)
  • 和上周,从星期一 00:00:00 开始到“今天”(在本例中为星期五)的结果。

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

【问题讨论】:

  • real 值到底是什么意思?
  • 例如:comment_date = $today 或 comment_date = $yesterday,comment_date = $this_month
  • 没有“今天”或“昨天”变量,您必须使用时间戳或其他日期类型(如果您使用日期时间,则选择 mysql 日期差异)选择某个时期。我猜你的方法是查看结果的唯一方法。

标签: php mysql unix date time


【解决方案1】:

这个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)

【讨论】:

  • 唯一剩下的就是从星期一开始计算“本周”
  • @JoachimIsaksson ,我试过了,但由于某种原因使用 '@now' 给我一个“500 内部服务器错误”
  • 本周更新了我的答案
  • @vinculis 您也需要在 WEEK 上检查年份,以免获得去年的同一周。此外,您需要传递 '1' 作为第二个参数才能在星期一获得一周的开始。
  • 感谢@JoachimIsaksson,已修复
【解决方案2】:

只需使用这个:

AND comment_date > date_sub(current_date, interval 1 day)

【讨论】:

    【解决方案3】:

    看我的回答,我觉得挺相关的。

    Pull records from orders table for the current week

    考虑亲近 MySQL's GROUP BY。如果您使用 MySQL,您很可能需要知道这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-20
      • 1970-01-01
      • 2015-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多