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

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

Trong MariaDB, TIME_FORMAT() là một hàm ngày và giờ được tích hợp sẵn để định dạng giá trị thời gian theo chuỗi định dạng đã cho.

Nó hoạt động tương tự như DATE_FORMAT() , ngoại trừ việc chuỗi định dạng chỉ có thể chứa các từ định dạng cho giờ, phút và giây.

Nó yêu cầu hai đối số; thời gian và chuỗi định dạng.

Cú pháp

Cú pháp như sau:

 TIME_FORMAT(time,format) 

Nơi time là giá trị thời gian và định dạng format là chuỗi định dạng. Xem Chuỗi định dạng MariaDB để biết danh sách các mã định dạng được chấp nhận. Như đã đề cập, chỉ những định dạng định dạng giờ, phút và giây mới được chấp nhận. Tất cả các giá trị khác trả về null .

Ví dụ

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

 SELECT TIME_FORMAT('10:30:45', '%H %i %S'); 

Kết quả:

 + ------------------------------------- + | TIME_FORMAT ('10:30:45', '% H% i% S') | + ----------------------------- -------- + | 10 30 45 | + ------------------------------------- + 

Đây là một lần nữa, nhưng lần này chúng tôi cung cấp một chuỗi định dạng phức tạp hơn:

 SELECT TIME_FORMAT(
    '10:30:45', 
    '%H hours, %i minutes, and %S seconds'
    )
AS Result; 

Kết quả:

 + -------------------------------------- + | Kết quả | + -------------------------------------- + | 10 giờ, 30 phút và 45 giây | + -------------------------------------- + 

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_FORMAT(
    '810:30:45', 
    '%H hours, %i minutes, and %S seconds'
    )
AS Result; 

Kết quả:

 + --------------------------------------- + | Kết quả | + --------------------------------------- + | 810 giờ, 30 phút và 45 giây | + --------------------------------------- + 

Giá trị thời gian phủ định

Dưới đây là một ví dụ có giá trị thời gian âm:

 SELECT TIME_FORMAT(
    '-810:30:45', 
    '%H hours, %i minutes, and %S seconds'
    )
AS Result; 

Kết quả:

 + ---------------------------------------- + | Kết quả | + ---------------------------------------- + | -810 giờ, 30 phút và 45 giây | + -------------------------------------- - + 

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ề ranh giới trên của phạm vi đó, cùng với cảnh báo:

 SELECT TIME_FORMAT(
    '910:30:45', 
    '%H hours, %i minutes, and %S seconds'
    )
AS Result; 

Kết quả:

 + --------------------------------------- + | Kết quả | + --------------------------------------- + | 838 giờ, 59 phút và 59 giây | + --------------------------------------- +1 hàng trong bộ, 1 cảnh báo (0,003 giây) 

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

 SHOW WARNINGS; 

Kết quả:

 + --------- + ------ + ----------------------------- ---------------- + | Mức độ | Mã | Tin nhắn | + --------- + ------ + ------------------------------ --------------- + | Cảnh báo | 1292 | Giá trị thời gian bị cắt ngắn không chính xác:'910:30:45' | + --------- + ------ + ------------------- -------------------------- + 

Đối số không hợp lệ

Khi được truyền bất kỳ đối số không hợp lệ nào, TIME_FORMAT() trả về null với một cảnh báo:

 SELECT TIME_FORMAT('Homer', 'Simpson'); 

Kết quả:

 + --------------------------------- + | TIME_FORMAT ('Homer', 'Simpson') | + --------------------------------- + | NULL | + --------------------------------- + 1 hàng được thiết lập, 1 cảnh báo (0,009 giây)  

Kiểm tra cảnh báo:

 SHOW WARNINGS; 

Kết quả:

 + --------- + ------ + ----------------------------- - + | Mức độ | Mã | Tin nhắn | + --------- + ------ + ------------------------------ - + | Cảnh báo | 1292 | Giá trị thời gian không chính xác:'Homer' | + --------- + ------ + ------------------------ ------- + 

Chuỗi định dạng không hợp lệ

Chuỗi định dạng chỉ có thể chứa các ký hiệu định dạng giờ, phút và giây. Bất kỳ mã định dạng nào khác đều dẫn đến null được trả lại:

 SELECT TIME_FORMAT('10:30:45', '%M %W'); 

Kết quả:

 + ---------------------------------- + | TIME_FORMAT ('10:30:45', '% M% W') | + ------------------------------- --- + | NULL | + ---------------------------------- + 

Thiếu đối số

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

Kết quả:

 ERROR 1582 (42000):Số lượng tham số không chính xác trong lệnh gọi hàm gốc 'TIME_FORMAT' 

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

 SELECT TIME_FORMAT('10:09:10'); 

Kết quả:

 ERROR 1582 (42000):Số lượng tham số không chính xác trong lệnh gọi hàm gốc 'TIME_FORMAT' 

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chọn một proxy cơ sở dữ liệu cho MySQL &MariaDB

  2. Cách DATE_FORMAT () hoạt động trong MariaDB

  3. Cách PERIOD_ADD () hoạt động trong MariaDB

  4. WEEKDAY () so với DAYOFWEEK () trong MariaDB:Sự khác biệt là gì?

  5. Nhập phân vùng InnoDB trong MariaDB 10.0 / 10.1