Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách lấy dữ liệu mỗi giờ trong MySQL

Đôi khi bạn có thể cần lấy dữ liệu hàng giờ hoặc tìm nạp các bản ghi hàng giờ trong MySQL. Trong bài viết này, chúng ta sẽ xem xét cách lấy dữ liệu mỗi giờ trong MySQL.


Cách lấy dữ liệu mỗi giờ trong MySQL

Dưới đây là các bước để lấy dữ liệu mỗi giờ trong MySQL. Giả sử bạn có bảng sau doanh số bán hàng (id, order_date, amount)

mysql> create table sales(id int, 
           order_date datetime, 
           amount int);

 mysql> insert into sales(id, order_date, amount)
      values(1, '2021-02-02 08:15:00',250),
      (2, '2021-02-02 08:30:00',200),
      (3, '2021-02-02 08:55:00',150),
      (4, '2021-02-02 09:15:00',125),
      (5, '2021-02-02 09:30:00',250),
      (6, '2021-02-02 09:45:00',200),
      (7, '2021-02-02 10:15:00',180),
      (8, '2021-02-02 10:30:00',125),
      (9, '2021-02-02 10:45:00',200),
      (10, '2021-02-02 11:15:00',250),
      (11, '2021-02-02 11:30:00',150),
      (12, '2021-02-02 11:45:00',200);

 mysql> select * from sales;
 +------+---------------------+--------+
 | id   | order_date          | amount |
 +------+---------------------+--------+
 |    1 | 2021-02-02 08:15:00 |    250 |
 |    2 | 2021-02-02 08:30:00 |    200 |
 |    3 | 2021-02-02 08:55:00 |    150 |
 |    4 | 2021-02-02 09:15:00 |    125 |
 |    5 | 2021-02-02 09:30:00 |    250 |
 |    6 | 2021-02-02 09:45:00 |    200 |
 |    7 | 2021-02-02 10:15:00 |    180 |
 |    8 | 2021-02-02 10:30:00 |    125 |
 |    9 | 2021-02-02 10:45:00 |    200 |
 |   10 | 2021-02-02 11:15:00 |    250 |
 |   11 | 2021-02-02 11:30:00 |    150 |
 |   12 | 2021-02-02 11:45:00 |    200 |
 +------+---------------------+--------+


Cách lấy dữ liệu mỗi giờ trong MySQL

Đây là truy vấn SQL để lấy dữ liệu mỗi giờ trong MySQL.

mysql> select hour(order_date),sum(amount)
       from sales
       group by hour(order_date);
 +------------------+-------------+
 | hour(order_date) | sum(amount) |
 +------------------+-------------+
 |                8 |         600 |
 |                9 |         575 |
 |               10 |         505 |
 |               11 |         600 |
 +------------------+-------------+

Trong truy vấn trên, chúng tôi chỉ cần nhóm theo order_date sử dụng hàm HOUR và tổng hợp số tiền sử dụng hàm SUM.

Hàm HOUR truy xuất số giờ từ một giá trị ngày / giờ / ngày giờ nhất định, có thể được cung cấp dưới dạng một chuỗi hoặc tên cột theo nghĩa đen.

Nếu bạn muốn hiển thị các giá trị giờ bằng ký hiệu SA / CH, chẳng hạn như 8AM, 9AM, v.v., thì bạn cần sử dụng hàm date_format cho phép bạn thay đổi định dạng của một giá trị ngày / giờ / datetime nhất định, có thể được cung cấp dưới dạng chuỗi chữ hoặc tên cột.

mysql> select date_format(order_date,'%H %p') as hour,
        sum(amount) as total_sales
        from sales
        group by date_format(order_date,'%H %p');
 +-------+-------------+
 | hour  | total_sales |
 +-------+-------------+
 | 08 AM |         600 |
 | 09 AM |         575 |
 | 10 AM |         505 |
 | 11 AM |         600 |
 +-------+-------------+

Cần một công cụ báo cáo cho MySQL? Ubiq giúp dễ dàng trực quan hóa dữ liệu trong vài phút và theo dõi trong trang tổng quan thời gian thực. Thử nó ngay hôm nay!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 2017 @ Somenines:Kỷ niệm những câu chuyện của khách hàng của chúng tôi

  2. Làm thế nào để sử dụng các câu lệnh chuẩn bị sẵn mysqli?

  3. Kiểm tra sức khỏe quan trọng cho máy chủ bản sao nguồn MySQL của bạn

  4. Làm cách nào để xóa tất cả các bản ghi trùng lặp trong bảng MySQL mà không có bảng tạm thời

  5. Khắc phục cảnh báo MySQL 1287:‘BINARY expr’ không được dùng nữa và sẽ bị xóa trong bản phát hành trong tương lai