Trong bài viết này, chúng ta sẽ xem cách lấy dữ liệu hàng giờ trong Truy vấn MySQL. Nhiều lần chúng tôi cần lấy dữ liệu hàng giờ hoặc chúng tôi được yêu cầu lấy dữ liệu hàng giờ trong MySQL. Để nhận dữ liệu cho mỗi giờ trong MySQL, chúng tôi sử dụng hàm hour[]. MySQL giờ[] trả về giờ của một thời gian. Giá trị trả về nằm trong phạm vi từ 0 đến 23 đối với giá trị thời gian trong ngày
Vì vậy, hãy xem truy vấn SQL để lấy dữ liệu cho mỗi giờ hoặc truy vấn MySQL để nhận bản ghi thông minh theo giờ trong PHP và cách lấy dữ liệu theo giờ trong PHP từ cơ sở dữ liệu
Nhận dữ liệu khôn ngoan theo giờ bằng ví dụ về MySQL
Sử dụng truy vấn SQL để lấy dữ liệu mỗi giờ trong MySQL
id | order_date | amount
---+---------------------+-------
1 | 2022-09-29 08:15:00 | 150
2 | 2022-09-29 08:30:00 | 200
3 | 2022-09-29 08:55:00 | 300
4 | 2022-09-29 09:20:00 | 400
5 | 2022-09-29 10:45:00 | 450
7 | 2022-09-29 11:50:00 | 200
Trong bảng của bạn, bản ghi cần giống như ngày và giờ
select hour[order_date], sum[amount]
from users
group by hour[order_date];
Nếu bạn muốn hiển thị các giá trị giờ bằng cách sử dụng ký hiệu AM/PM, chẳng hạn như 10 giờ sáng, 11 giờ sáng, 12 giờ chiều, 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 ngày và giờ nhất định
Cơ sở dữ liệu của chúng tôi có một bảng tên là apartment_rental
với dữ liệu trong các cột id
, address
, floor
và start_date
Đối với mỗi căn hộ có sẵn, hãy lấy địa chỉ, tầng và tháng khi căn hộ có sẵn. Chỉ lấy tháng từ cột start_date
Giải pháp
Chúng ta sẽ sử dụng hàm MONTH[]
. Đây là truy vấn bạn sẽ viết
SELECT address, floor, MONTH[start_date] AS start_month FROM apartment_rental;
Đây là kết quả của truy vấn
Thảo luận
Sử dụng hàm MONTH[]
để truy xuất một tháng từ cột ngày/ngày giờ/dấu thời gian trong MySQL. Hàm này chỉ nhận một đối số – có thể là biểu thức trả về giá trị ngày/ngày giờ/dấu thời gian hoặc tên của cột ngày/ngày giờ/dấu thời gian. [Trong ví dụ của chúng tôi, chúng tôi sử dụng cột start_date
của kiểu dữ liệu ngày tháng]
MONTH[]
trả về tháng dưới dạng số nguyên từ 1 đến 12 [1 là tháng 1 và 12 là tháng 12]. Trong ví dụ của chúng tôi, căn hộ tại 700 Oak Street sẽ bắt đầu cho thuê vào tháng thứ 3 vì ngày bắt đầu của căn hộ là apartment_rental
1
Để lấy cột năm và tháng, hãy sử dụng hàm
SELECT EXTRACT[YEAR_MONTH FROM date] AS year_and_month FROM dates;0. Trong giải pháp này, đối số bộ phận được thay thế bằng
SELECT EXTRACT[YEAR_MONTH FROM date] AS year_and_month FROM dates;1 và
SELECT EXTRACT[YEAR_MONTH FROM date] AS year_and_month FROM dates;2 để tách riêng
year
và month
, mỗi cái trong cột riêngBạn có thể tìm hiểu thêm về
SELECT EXTRACT[YEAR_MONTH FROM date] AS year_and_month FROM dates;5
Giải pháp 2
SELECT EXTRACT[YEAR_MONTH FROM date] AS year_and_month FROM dates;
Kết quả là
Thảo luận
Giải pháp này hoạt động chính xác như giải pháp trước, nhưng
SELECT EXTRACT[YEAR_MONTH FROM date] AS year_and_month FROM dates;6 được sử dụng để lấy năm và tháng cùng nhau trong một cột thay vì lấy chúng riêng biệt. Lưu ý rằng các giá trị của năm và tháng không được tách biệt với nhau
Giải pháp 3
SELECT YEAR[date] AS year, MONTH[date] AS month FROM dates;
Kết quả là
nămtháng20084198712Thảo luận
Lần này, các hàm
SELECT EXTRACT[YEAR_MONTH FROM date] AS year_and_month FROM dates;7 và
SELECT EXTRACT[YEAR_MONTH FROM date] AS year_and_month FROM dates;8 được sử dụng để tạo hai cột.
SELECT EXTRACT[YEAR_MONTH FROM date] AS year_and_month FROM dates;7 trả về năm và
SELECT EXTRACT[YEAR_MONTH FROM date] AS year_and_month FROM dates;8 trả về tháng dưới dạng số
Giải pháp 4
SELECT YEAR[date] AS year, MONTHNAME[date] AS month FROM dates;
Kết quả là
nămtháng 2008tháng 4 năm 1987tháng 12Thảo luận
Để lấy tên của tháng, hãy sử dụng hàm
SELECT YEAR[date] AS year, MONTH[date] AS month FROM dates;1. Kết quả hiển thị tên tháng thay vì số tháng
Giải pháp 5
SELECT DATE_FORMAT[date, '%Y-%m'] AS year_and_month FROM dates;
Kết quả là
năm_và_tháng2008-041987-12Thảo luận
Sử dụng hàm
SELECT YEAR[date] AS year, MONTH[date] AS month FROM dates;2 để hiển thị các giá trị
date
ở định dạng cụ thể. Nó lấy date
làm đối số đầu tiên và một chuỗi mô tả định dạng ngày mong muốn làm đối số thứ hai. Trong trường hợp của chúng tôi, chuỗi 'SELECT YEAR[date] AS year, MONTH[date] AS month FROM dates;5',
SELECT YEAR[date] AS year, MONTH[date] AS month FROM dates;6 trả về năm, '
SELECT YEAR[date] AS year, MONTH[date] AS month FROM dates;7' được sử dụng làm dấu phân cách và
SELECT YEAR[date] AS year, MONTH[date] AS month FROM dates;8 trả về tháng ở dạng số [có thể thay thế bằng
SELECT YEAR[date] AS year, MONTH[date] AS month FROM dates;9 để lấy tên tháng]