【问题标题】:How to get today's / yesterday's data from MySQL database?如何从 MySQL 数据库中获取今天/昨天的数据?
【发布时间】:2012-09-23 11:19:28
【问题描述】:

我想从数据库中检索 TODAY'S 数据,但我不知道该怎么做。我实际上想要获取不是过去 24 小时的数据,我只想要今天的数据(因此基于实际的服务器时间)。

我还想获取昨天的数据。谁能帮我怎么做?

示例代码:

"SELECT id FROM folk WHERE time = ???"

提前谢谢你!

【问题讨论】:

  • 你如何存储“时间”、整数、时间戳、日期时间等?

标签: php mysql


【解决方案1】:

我想你正在寻找这个:

"SELECT id FROM folk WHERE DATE(time) = CURDATE()"

时间必须是表中包含对行的引用的字段。

更新

要获得昨天的补充:

"SELECT id FROM folk WHERE DATE(time) = CURDATE() - 1"

更新 2

要获得本月的所有补充:

"SELECT id FROM folk 
WHERE MONTH(time) = MONTH(NOW()) AND YEAR(time) = YEAR(NOW())"

参考:http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html

【讨论】:

  • 没有人,我实际上是想根据服务器时间从 ACTUAL DAY 获取数据。就像这里的早上 8 点一样,它应该只显示过去 8 小时的数据,而不是更多。
  • 我认为这就是我提供的。每条记录在创建时都需要一个时间戳。 MySQL 不保存添加记录的日志。
  • 我怎样才能得到昨天或每月的数据?
  • 更新了我的答案。获取本月的所有数据有点复杂,但另一方面,这不是问题。
  • "SELECT id FROM people WHERE DATE(time) = CURDATE()" 它实际上没有显示数据库中的任何内容:/
【解决方案2】:
SELECT id FROM folk WHERE DATE(time) = DATE(NOW());

SELECT id FROM folk WHERE DATE(time) = DATE(DATE_SUB(NOW(), INTERVAL 1 DAY));

只要“时间”具有正确的日期时间类型

【讨论】:

  • time 是一个时间戳,正如 OP 在他的评论中解释的那样(可能在你的回答之后发布)。
【解决方案3】:

试试这样的东西>>

SELECT id from folk  WHERE DAY( date ) = EXTRACT(DAY from (NOW() - inTERVAL 
1 DAY ) ) 

参考这个链接 http://www.webmasterworld.com/forum112/278.htm

【讨论】:

    【解决方案4】:

    当您使用时间戳时:

    "SELECT id FROM folk WHERE time >= ".mktime(0, 0, 0)
    

    这将选择从今天开始的所有数据。

    如果您想获取不是今天的所有日期,您会这样做

    "SELECT id FROM folk WHERE time < ".mktime(0, 0, 0)
    

    要选择昨天的数据,您可以:

    "SELECT id FROM folk WHERE time < ".mktime(0, 0, 0)." AND time >= ".mktime(0, 0, 0, date('m'), date('d')-1, date('Y'))
    

    如果您要使用 DATETIME,仅供参考,它会是这样的:

    "SELECT id FROM folk WHERE time >= '".date('Y-m-d').' 00:00:00."'"
    

    【讨论】:

    • 请注意,在 SQL 查询中不赞成字符串连接;是的,我知道这只是一个例子
    • "SELECT id FROM people WHERE time >= ".mktime(0, 0, 0) 它实际上不起作用。它给了我所有的数据,不仅仅是那天:/
    • 嗯,它应该工作?我已经测试了时间戳并且它们是准确的,所以我只能假设比较失败或者无法将两者相互匹配。 @tucuxi 我知道,但尽量保持简短和甜蜜 ;-)
    【解决方案5】:

    使用以下查询获取当前日期

    SELECT * 
     FROM your_table_name 
    WHERE DAY('.$colum_name.') = DAY("2018-05-02")';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-15
      • 2020-09-30
      • 1970-01-01
      • 2014-09-07
      • 2017-02-14
      • 2021-09-23
      • 1970-01-01
      • 2011-08-03
      相关资源
      最近更新 更多