【问题标题】:Get data in current date last hour in sql在sql中的最后一小时获取当前日期的数据
【发布时间】:2021-03-11 19:52:48
【问题描述】:

我想统计上一小时当前日期的数据(例如 now() 是 2020-04-11 12:30:00 ,那么我想在 12 点之前获取数据。有什么想法吗?

table_a

timestamp           
2020-04-11 10:00:00     
2020-04-11 10:00:00     
2020-04-11 11:00:00     
2020-04-11 12:00:00  
2020-04-11 12:30:00 

预期结果:

timestamp            count
2020-04-11 10:00:00     2
2020-04-11 11:00:00     1
2020-04-11 12:00:00     1

我正在使用 mysql 8

【问题讨论】:

  • 用您正在使用的数据库标记您的问题。
  • 我正在使用 mysql 8

标签: mysql date datetime group-by hour


【解决方案1】:

根据其他问题,您似乎正在使用 MySQL。所以,一种方法是:

where timestamp >= curdate() and
      hour(timestamp) < hour(now())

【讨论】:

  • 为什么输出是空的?
  • 我修复了查询。那应该是hour(now()),而不是hour(curdate())
  • 谢谢你,它对我有用!你能支持我的问题吗?
  • @hinafaya 不。它不是那样工作的。
  • @hinafaya 但你不能这么问。我真的不认为这很清楚。我没有反对你的问题,但我也没有反对。另一方面,如果 Gordon 的回答对您有所帮助,请点赞。接受您认为对您最有帮助的答案。
【解决方案2】:

就像 Gordon 提到的,您需要使用 where 子句,但要查看您的表格:

SELECT timestamp, COUNT(*)
FROM table_a
WHERE timestamp >= curdate() and
      hour(timestamp) < hour(now())
Group by timestamp

应该是完整的查询.....

【讨论】:

  • 它也适用于我,谢谢!你能支持我的问题吗?
  • @hinafaya 如果可行你能接受吗,让未来的读者知道问题已经解决了??
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-03
  • 1970-01-01
  • 2019-09-15
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多