MariaDB
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> MariaDB

Cách MAKETIME () hoạt động trong MariaDB

Trong MariaDB, MAKETIME() 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 giờ, phút và giây được cung cấp dưới dạng đối số.

Cú pháp

Cú pháp như sau:

MAKETIME(hour,minute,second)

Ví dụ

Đây là một ví dụ:

SELECT MAKETIME(08, 30, 45);

Kết quả:

+----------------------+
| MAKETIME(08, 30, 45) |
+----------------------+
| 08:30:45             |
+----------------------+

Và một cái khác:

SELECT MAKETIME(23, 8, 1);

Kết quả:

+--------------------+
| MAKETIME(23, 8, 1) |
+--------------------+
| 23:08:01           |
+--------------------+

Dải

Nếu hour đối số nằm ngoài phạm vi -838 thành 838 , giá trị bị cắt bớt với một cảnh báo.

Nếu minute hoặc second các đối số nằm ngoài phạm vi 0 thành 59 , kết quả là null và một cảnh báo được hiển thị (tài liệu MariaDB nói rằng phạm vi là 0 thành 60 , nhưng đây không phải là trường hợp trong các thử nghiệm của tôi. Hơn nữa, tài liệu MariaDB cũng nói rằng phạm vi cho các 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 MAKETIME(838, 59, 59.999999);

Kết quả:

+------------------------------+
| MAKETIME(838, 59, 59.999999) |
+------------------------------+
| 838:59:59.999999             |
+------------------------------+

Các giá trị này vẫn nằm trong phạm vi được chấp nhận của chúng và do đó chúng tôi nhận được giá trị thời gian hợp lệ.

Phút &Giây không hợp lệ

Đây là những gì sẽ xảy ra khi chúng tôi vượt qua phạm vi được chấp nhận trong minutesecond đối số:

SELECT 
    MAKETIME(00, 60, 00),
    MAKETIME(00, 00, 60);

Kết quả:

+----------------------+----------------------+
| MAKETIME(00, 60, 00) | MAKETIME(00, 00, 60) |
+----------------------+----------------------+
| NULL                 | NULL                 |
+----------------------+----------------------+
1 row in set, 1 warning (0.001 sec)

Kết quả là null cho cả hai, với một cảnh báo.

Hãy kiểm tra cảnh báo:

SHOW WARNINGS;

Kết quả:

+---------+------+-----------------------------------------+
| Level   | Code | Message                                 |
+---------+------+-----------------------------------------+
| Warning | 1292 | Truncated incorrect seconds value: '60' |
+---------+------+-----------------------------------------+

Giờ không hợp lệ

Bây giờ, hãy xem điều gì sẽ xảy ra khi chúng ta đi ra ngoài phạm vi được chấp nhận trong hour đối số:

SELECT MAKETIME(900, 00, 00);

Kết quả:

+-----------------------+
| MAKETIME(900, 00, 00) |
+-----------------------+
| 838:59:59             |
+-----------------------+
1 row in set, 1 warning (0.000 sec)

Trong trường hợp này, một giá trị thời gian được trả về với giờ, phút và giây được cắt bớt vào phạm vi phía trên của chúng. Một cảnh báo cũng được trả lại.

Hãy kiểm tra cảnh báo:

SHOW WARNINGS;

Kết quả:

+---------+------+---------------------------------------------+
| Level   | Code | Message                                     |
+---------+------+---------------------------------------------+
| Warning | 1292 | Truncated incorrect time value: '900:00:00' |
+---------+------+---------------------------------------------+

Thiếu đối số

Đang gọi MAKETIME() 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 MAKETIME();

Kết quả:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'MAKETIME'

Và một ví dụ khác:

SELECT MAKETIME( 12, 1 );

Kết quả:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'MAKETIME'

Hẹn hò

Đồng thời xem SEC_TO_TIME() để tạo giá trị ngày từ một số giây.

Cũng xem MAKEDATE() để xây dựng một giá trị ngày tháng từ năm và ngày trong năm của nó.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách QUOTE () hoạt động trong MariaDB

  2. 8 cách để thêm ngày vào một ngày trong MariaDB

  3. Cách trừ một năm khỏi một ngày trong MariaDB

  4. Cách ASIN () hoạt động trong MariaDB

  5. Triển khai một Nextcloud khả dụng cao với MySQL Galera Cluster và GlusterFS