Trong MariaDB, SEC_TO_TIME()
là một hàm ngày và giờ được tích hợp sẵn trả về giá trị thời gian, dựa trên số giây được cung cấp dưới dạng đối số.
Cú pháp
Cú pháp như sau:
SEC_TO_TIME(seconds)
Ví dụ
Đây là một ví dụ:
SELECT SEC_TO_TIME(1);
Kết quả:
+----------------+ | SEC_TO_TIME(1) | +----------------+ | 00:00:01 | +----------------+
Đây là một cái khác:
SELECT SEC_TO_TIME(18520);
Kết quả:
+--------------------+ | SEC_TO_TIME(18520) | +--------------------+ | 05:08:40 | +--------------------+
Ngoài Phạm vi Giây
Phạm vi của kết quả bị giới hạn trong phạm vi của kiểu dữ liệu thời gian. Cảnh báo xảy ra nếu đối số tương ứng với giá trị bên ngoài phạm vi đó. Phạm vi cho giá trị thời gian MariaDB là '-838:59:59.999999'
thành '838:59:59.999999'
.
Dù sao, đây là một ví dụ về thời gian có các giá trị nằm ở phần trên của phạm vi được chấp nhận của chúng:
SELECT SEC_TO_TIME(3020399);
Kết quả:
+----------------------+ | SEC_TO_TIME(3020399) | +----------------------+ | 838:59:59 | +----------------------+
Và đây là một trong số đó nằm ngoài phạm vi:
SELECT SEC_TO_TIME(3020400);
Kết quả:
+----------------------+ | SEC_TO_TIME(3020400) | +----------------------+ | 838:59:59 | +----------------------+ 1 row in set, 1 warning (0.000 sec)
Đây là cảnh báo:
SHOW WARNINGS;
Kết quả:
+---------+------+----------------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------------+ | Warning | 1292 | Truncated incorrect seconds value: '3020400' | +---------+------+----------------------------------------------+
Micro giây
Chúng tôi thậm chí có thể tiến gần hơn đến phạm vi trên bằng cách bao gồm micro giây:
SELECT SEC_TO_TIME(3020399.999999);
Kết quả:
+-----------------------------+ | SEC_TO_TIME(3020399.999999) | +-----------------------------+ | 838:59:59.999999 | +-----------------------------+
Lập luận phủ định
Việc cung cấp số tiền âm dẫn đến giá trị thời gian âm.
Ví dụ:
SELECT SEC_TO_TIME(-3020399);
Kết quả:
+-----------------------+ | SEC_TO_TIME(-3020399) | +-----------------------+ | -838:59:59 | +-----------------------+
Thiếu đối số
Đang gọi SEC_TO_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 SEC_TO_TIME();
Kết quả:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SEC_TO_TIME'
Và một ví dụ khác:
SELECT SEC_TO_TIME( 123, 456 );
Kết quả:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SEC_TO_TIME'
Dành thời gian
Cũng xem MAKETIME()
để xây dựng một giá trị thời gian từ giờ, phút và giây của nó.