Trong MariaDB, TIME_TO_SEC()
là một hàm ngày và giờ được tích hợp sẵn trả về đối số thời gian của nó, được chuyển đổi thành giây.
Cú pháp
Cú pháp như sau:
TIME_TO_SEC(time)
Nơi time
là giá trị thời gian được chuyển đổi thành giây.
Ví dụ
Đây là một ví dụ:
SELECT TIME_TO_SEC('00:01:00');
Kết quả:
+-------------------------+ | TIME_TO_SEC('00:01:00') | +-------------------------+ | 60 | +-------------------------+
Đây là với một vài giá trị thời gian khác:
SELECT
TIME_TO_SEC('01:00:00'),
TIME_TO_SEC('15:37:46');
Kết quả:
+-------------------------+-------------------------+ | TIME_TO_SEC('01:00:00') | TIME_TO_SEC('15:37:46') | +-------------------------+-------------------------+ | 3600 | 56266 | +-------------------------+-------------------------+
Micro giây
TIME_TO_SEC()
hỗ trợ micro giây:
SELECT TIME_TO_SEC('00:01:00.123456');
Kết quả:
+--------------------------------+ | TIME_TO_SEC('00:01:00.123456') | +--------------------------------+ | 60.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_TO_SEC('838:59:59');
Kết quả:
+--------------------------+ | TIME_TO_SEC('838:59:59') | +--------------------------+ | 3020399 | +--------------------------+
Giá trị thời gian phủ định
Dưới đây là một ví dụ có giá trị thời gian âm:
SELECT TIME_TO_SEC('-820:38:15');
Kết quả:
+---------------------------+ | TIME_TO_SEC('-820:38:15') | +---------------------------+ | -2954295 | +---------------------------+
Thời gian ngoài phạm vi
Tuy nhiên, việc cung cấp giá trị thời gian bên ngoài phạm vi sẽ trả về số giây cho ranh giới trên của phạm vi đó, cùng với cảnh báo:
SELECT TIME_TO_SEC('920:38:15');
Kết quả:
+--------------------------+ | TIME_TO_SEC('920:38:15') | +--------------------------+ | 3020399 | +--------------------------+ 1 row in set, 1 warning (0.002 sec)
Hãy kiểm tra cảnh báo:
SHOW WARNINGS;
Kết quả:
+---------+------+---------------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------------+ | Warning | 1292 | Truncated incorrect time value: '920:38:15' | +---------+------+---------------------------------------------+
Đối số không hợp lệ
Khi được chuyển bất kỳ đối số không hợp lệ nào, TIME_TO_SEC()
trả về null
với một cảnh báo:
SELECT TIME_TO_SEC('Homer');
Kết quả:
+----------------------+ | TIME_TO_SEC('Homer') | +----------------------+ | NULL | +----------------------+ 1 row in set, 1 warning (0.000 sec)
Kiểm tra cảnh báo:
SHOW WARNINGS;
Kết quả:
+---------+------+-------------------------------+ | Level | Code | Message | +---------+------+-------------------------------+ | Warning | 1292 | Incorrect time value: 'Homer' | +---------+------+-------------------------------+
Thiếu đối số
Đang gọi TIME_TO_SEC()
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_TO_SEC();
Kết quả:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TIME_TO_SEC'
Và một ví dụ khác:
SELECT TIME_TO_SEC('10:09:10', 2);
Kết quả:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TIME_TO_SEC'