Trong MariaDB, TIME()
là một hàm ngày và giờ được tích hợp sẵn để trích xuất phần thời gian từ một biểu thức thời gian hoặc ngày giờ nhất định và trả về nó dưới dạng một chuỗi.
Nó chấp nhận một đối số, là giá trị thời gian hoặc ngày giờ mà bạn muốn trích xuất thời gian.
Cú pháp
Cú pháp như sau:
TIME(expr)
Ở đâu expr
là biểu thức thời gian hoặc ngày giờ để trích xuất thời gian.
Ví dụ
Dưới đây là một ví dụ để chứng minh:
SELECT TIME('2030-02-01 10:30:45');
Kết quả:
+-----------------------------+ | TIME('2030-02-01 10:30:45') | +-----------------------------+ | 10:30:45 | +-----------------------------+
Giá trị thời gian
Dưới đây là một ví dụ trích xuất thời gian từ một giá trị thời gian:
SELECT TIME('10:30:45');
Kết quả:
+------------------+ | TIME('10:30:45') | +------------------+ | 10:30:45 | +------------------+
Micro giây
Dưới đây là một ví dụ bao gồm micro giây:
SELECT TIME('2030-02-01 10:30:45.123456');
Kết quả:
+------------------------------------+ | TIME('2030-02-01 10:30:45.123456') | +------------------------------------+ | 10:30:45.123456 | +------------------------------------+
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 TIME('578:30:45');
Kết quả:
+-------------------+ | TIME('578:30:45') | +-------------------+ | 578:30:45 | +-------------------+
Lần tiêu cực
Thời gian phủ định hợp lệ:
Ví dụ
SELECT TIME('-578:30:45');
Kết quả:
+--------------------+ | TIME('-578:30:45') | +--------------------+ | -578:30:45 | +--------------------+
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'
được giới hạn ở ranh giới liên quan và bao gồm một cảnh báo.
Ví dụ:
SELECT TIME('978:30:45');
Kết quả (sử dụng đầu ra dọc):
+-------------------+ | TIME('978:30:45') | +-------------------+ | 838:59:59 | +-------------------+ 1 row in set, 1 warning (0.003 sec)
Hãy kiểm tra cảnh báo:
SHOW WARNINGS;
Kết quả (sử dụng đầu ra dọc):
+---------+------+---------------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------------+ | Warning | 1292 | Truncated incorrect time value: '978:30:45' | +---------+------+---------------------------------------------+
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(),
TIME(NOW());
Kết quả:
+---------------------+-------------+ | NOW() | TIME(NOW()) | +---------------------+-------------+ | 2021-05-27 10:24:23 | 10:24:23 | +---------------------+-------------+
Đối số không hợp lệ
Khi truyền một đối số không hợp lệ, TIME()
trả về null
với một cảnh báo:
SELECT TIME('Ten Thirty AM');
Kết quả:
+-----------------------+ | TIME('Ten Thirty AM') | +-----------------------+ | NULL | +-----------------------+ 1 row in set, 1 warning (0.002 sec)
Kiểm tra cảnh báo:
SHOW WARNINGS;
Kết quả:
+---------+------+---------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------+ | Warning | 1292 | Incorrect time value: 'Ten Thirty AM' | +---------+------+---------------------------------------+
Thiếu đối số
Đang gọi TIME()
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 TIME();
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 TIME('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