Trong MariaDB, HOUR()
là một hàm ngày và giờ được tích hợp sẵn để trả về giờ từ một biểu thức thời gian nhất định.
Nó chấp nhận một đối số, đó là thời gian bạn muốn trích xuất giờ.
Đối với giá trị thời gian trong ngày, nó trả về giờ dưới dạng một số trong phạm vi 0
thành 23
. Tuy nhiên, phạm vi TIME
giá trị có thể lớn hơn nhiều và do đó, giá trị trả về có thể cao hơn nhiều so với 23
.
Giá trị trả về luôn là số dương, ngay cả khi cung cấp thời gian âm.
Cú pháp
Cú pháp như sau:
HOUR(time)
Nơi time
là biểu thức thời gian để lấy giờ.
Ví dụ
Đây là một ví dụ:
SELECT HOUR('10:30:45');
Kết quả:
+------------------+ | HOUR('10:30:45') | +------------------+ | 10 | +------------------+
Giá trị ngày giờ
Nó cũng hoạt động với các giá trị ngày giờ:
SELECT HOUR('2030-02-01 10:30:45');
Kết quả:
+-----------------------------+ | HOUR('2030-02-01 10:30:45') | +-----------------------------+ | 10 | +-----------------------------+
Giờ lớn hơn
TIME
giá trị có thể nằm trong khoảng '-838:59:59.999999'
thành '838:59:59.999999'
.
Do đó, phần giờ có thể cao hơn nhiều so với 23
:
SELECT HOUR('578:30:45');
Kết quả:
+-------------------+ | HOUR('578:30:45') | +-------------------+ | 578 | +-------------------+
Lần tiêu cực
Thời gian tiêu cực trả về kết quả dương tính.
Ví dụ
SELECT HOUR('-578:30:45');
Kết quả:
+--------------------+ | HOUR('-578:30:45') | +--------------------+ | 578 | +--------------------+
Giờ ngoài phạm vi
Giá trị thời gian ngoài phạm vi '-838:59:59.999999'
thành '838:59:59.999999'
trả về 838
.
Ví dụ:
SELECT HOUR('978:30:45');
Kết quả (sử dụng đầu ra dọc):
+-------------------+ | HOUR('978:30:45') | +-------------------+ | 838 | +-------------------+
Ngày hiện tại
Chúng ta có thể chuyển NOW()
làm đối số datetime để sử dụng thời gian hiện tại:
SELECT
NOW(),
HOUR(NOW());
Kết quả:
+---------------------+-------------+ | NOW() | HOUR(NOW()) | +---------------------+-------------+ | 2021-05-16 10:50:02 | 10 | +---------------------+-------------+
Đối số không hợp lệ
Khi truyền một đối số không hợp lệ, HOUR()
trả về null
:
SELECT HOUR('Ten Thirty AM');
Kết quả:
+-----------------------+ | HOUR('Ten Thirty AM') | +-----------------------+ | NULL | +-----------------------+
Thiếu đối số
Đang gọi HOUR()
với số lượng đối số sai hoặc không chuyển bất kỳ đối số nào, dẫn đến lỗi:
SELECT HOUR();
Kết quả:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1
Và một ví dụ khác:
SELECT HOUR('10:30:45', '06:30:45');
Kết quả:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' '06:30:45')' at line 1