MySQL HOUR()
hàm được sử dụng để trả về thành phần giờ từ một giá trị thời gian.
Giá trị trả về cho giá trị thời gian trong ngày sẽ nằm trong khoảng từ 0 đến 23, tuy nhiên, phạm vi được trả về bởi hàm này có thể lớn hơn nhiều, do thực tế là thời gian loại dữ liệu không chỉ giới hạn ở một thời gian trong ngày (nó cũng có thể được sử dụng để biểu thị thời gian đã trôi qua hoặc khoảng thời gian giữa hai sự kiện). Điều này có nghĩa là giá trị trả về có thể lớn hơn 24 giờ hoặc thậm chí là giá trị âm.
Cú pháp
Cú pháp của hàm này như sau:
HOUR(time)
Nơi time
là giá trị thời gian mà bạn muốn trích xuất thành phần giờ.
Ví dụ 1 - Cách sử dụng cơ bản
Đây là một ví dụ để chứng minh.
SELECT HOUR('10:35:27');
Kết quả:
+------------------+ | HOUR('10:35:27') | +------------------+ | 10 | +------------------+
Ví dụ 2 - Hơn 24 giờ
Như đã đề cập, nếu giá trị thời gian được sử dụng để biểu thị thời gian đã trôi qua hoặc khoảng thời gian giữa hai sự kiện, thì nó có thể có thành phần giờ lớn hơn 24 giờ. Vì vậy, ví dụ sau hoàn toàn hợp lệ.
SELECT HOUR('310:35:27');
Kết quả:
+-------------------+ | HOUR('310:35:27') | +-------------------+ | 310 | +-------------------+
Ví dụ 3 - Giá trị phủ định
Giá trị âm cũng hoàn toàn hợp lệ cho thời gian loại dữ liệu. Tuy nhiên, lưu ý rằng HOUR()
hàm sẽ trả về nó dưới dạng giá trị dương:
SELECT HOUR('-310:35:27');
Kết quả:
+--------------------+ | HOUR('-310:35:27') | +--------------------+ | 310 | +--------------------+
Nếu đây là sự cố và bạn cần các giá trị âm được trả về dưới dạng giá trị âm, thì EXTRACT()
chức năng có thể là những gì bạn đang tìm kiếm:
SELECT EXTRACT(HOUR FROM '-310:35:27');
Kết quả:
+---------------------------------+ | EXTRACT(HOUR FROM '-310:35:27') | +---------------------------------+ | -310 | +---------------------------------+