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

4 cách để tách biệt giờ, phút và giây với một giá trị thời gian trong MariaDB

MariaDB có một số chức năng cho phép bạn trích xuất các phần ngày và giờ khác nhau từ các giá trị ngày / giờ. Bạn có thể sử dụng chúng để tách từng thành phần ngày / giờ thành cột riêng nếu cần.

Dưới đây là bốn cách để trích xuất giờ, phút và giây từ một giá trị thời gian trong MariaDB. Như một phần thưởng, chúng tôi cũng sẽ bao gồm micro giây.

HOUR() , MINUTE() , SECOND()MICROSECOND() Chức năng

HOUR() , MINUTE()SECOND() các hàm trích xuất giờ, phút và giây từ một giá trị ngày tháng hoặc thời gian tương ứng.

Và nếu bạn đang làm việc với độ chính xác cao hơn, bạn có thể sử dụng MICROSECOND() hàm để trả về phần micro giây.

Dưới đây là một ví dụ về việc sử dụng các hàm này để trả về từng thành phần thời gian trong cột riêng của nó:

SELECT 
    HOUR('10:45:30.123456') AS "Hours",
    MINUTE('10:45:30.123456') AS "Minutes",
    SECOND('10:45:30.123456') AS "Seconds",
    MICROSECOND('10:45:30.123456') AS "Microseconds";

Kết quả:

+-------+---------+---------+--------------+
| Hours | Minutes | Seconds | Microseconds |
+-------+---------+---------+--------------+
|    10 |      45 |      30 |       123456 |
+-------+---------+---------+--------------+

TIME giá trị có thể nằm trong khoảng '-838:59:59.999999' thành '838:59:59.999999' .

TIME giá trị cũng có thể âm. Trong những trường hợp như vậy, giá trị trả về vẫn là số dương.

Đây là giá trị thời gian âm:

SELECT 
    HOUR('-10:45:30.123456') AS "Hours",
    MINUTE('-10:45:30.123456') AS "Minutes",
    SECOND('-10:45:30.123456') AS "Seconds",
    MICROSECOND('-10:45:30.123456') AS "Microseconds";

Kết quả:

+-------+---------+---------+--------------+
| Hours | Minutes | Seconds | Microseconds |
+-------+---------+---------+--------------+
|    10 |      45 |      30 |       123456 |
+-------+---------+---------+--------------+

EXTRACT() Chức năng

EXTRACT() chức năng cho phép bạn trích xuất một đơn vị cụ thể từ giá trị ngày / giờ. Do đó, bạn có thể sử dụng nó để trích xuất giờ, phút, giây và micro giây từ giá trị thời gian.

Ví dụ:

SELECT 
    EXTRACT(HOUR FROM '10:45:30.123456') AS "Hours",
    EXTRACT(MINUTE FROM '10:45:30.123456') AS "Minutes",
    EXTRACT(SECOND FROM '10:45:30.123456') AS "Seconds",
    EXTRACT(MICROSECOND FROM '10:45:30.123456') AS "Microseconds";

Kết quả:

+-------+---------+---------+--------------+
| Hours | Minutes | Seconds | Microseconds |
+-------+---------+---------+--------------+
|    10 |      45 |      30 |       123456 |
+-------+---------+---------+--------------+

TIME_FORMAT() Chức năng

TIME_FORMAT() hàm cho phép bạn định dạng một giá trị thời gian dựa trên một chuỗi định dạng. Chuỗi định dạng chỉ định cách thời gian nên được định dạng.

Do đó, bạn có thể sử dụng chức năng này để trả về các phần thời gian khác nhau một cách riêng biệt.

Ví dụ:

SELECT 
    TIME_FORMAT('10:07:30.123456', '%H') AS "Hours",
    TIME_FORMAT('10:07:30.123456', '%i') AS "Minutes",
    TIME_FORMAT('10:07:30.123456', '%s') AS "Seconds",
    TIME_FORMAT('10:07:30.123456', '%f') AS "Microseconds";

Kết quả:

+-------+---------+---------+--------------+
| Hours | Minutes | Seconds | Microseconds |
+-------+---------+---------+--------------+
| 10    | 07      | 30      | 123456       |
+-------+---------+---------+--------------+

Cũng có thể trả về tất cả các thành phần thời gian một cách riêng biệt, nhưng trong cùng một cột.

Đây là một ví dụ về ý tôi muốn nói:

SELECT TIME_FORMAT('10:07:30.123456', '%H %i %s %f');

Kết quả:

+-----------------------------------------------+
| TIME_FORMAT('10:07:30.123456', '%H %i %s %f') |
+-----------------------------------------------+
| 10 07 30 123456                               |
+-----------------------------------------------+

TIME_FORMAT() hàm chấp nhận một tập hợp con của các chuỗi định dạng có thể được sử dụng với DATE_FORMAT() hàm số.

Có một số chỉ định định dạng có thể có cho phần giờ. Công cụ định dạng được sử dụng ở trên trả về giờ có hai chữ số giữa 0023 . Xem Chuỗi định dạng MariaDB để biết danh sách đầy đủ các chuỗi / mã định dạng có thể được sử dụng với DATE_FORMAT() . TIME_FORMAT() hàm chỉ chấp nhận các chỉ định định dạng cho giờ, phút và giây / giây phụ. Bất kỳ công cụ định dạng nào khác đều dẫn đến null hoặc 0 được trả lại.

DATE_FORMAT() Chức năng

DATE_FORMAT() hàm cho phép bạn định dạng ngày tháng hoặc giá trị ngày giờ dựa trên một chuỗi định dạng. Chuỗi định dạng chỉ định cách định dạng ngày / giờ.

Do đó, chúng tôi có thể sử dụng cùng một mã định dạng mà chúng tôi đã sử dụng với TIME_FORMAT() chức năng trong ví dụ trước. Tuy nhiên, DATE_FORMAT() không chấp nhận TIME giá trị, vì vậy chúng tôi sẽ cần vượt qua DATETIME giá trị.

SELECT 
    DATE_FORMAT('2023-01-01 10:07:30.123456', '%H') AS "Hours",
    DATE_FORMAT('2023-01-01 10:07:30.123456', '%i') AS "Minutes",
    DATE_FORMAT('2023-01-01 10:07:30.123456', '%s') AS "Seconds",
    DATE_FORMAT('2023-01-01 10:07:30.123456', '%f') AS "Microseconds";

Kết quả:

+-------+---------+---------+--------------+
| Hours | Minutes | Seconds | Microseconds |
+-------+---------+---------+--------------+
| 10    | 07      | 30      | 123456       |
+-------+---------+---------+--------------+

Chỉ vượt qua một TIME value không hoạt động với chức năng này:

SELECT 
    DATE_FORMAT('10:07:30.123456', '%H') AS "Hours",
    DATE_FORMAT('10:07:30.123456', '%i') AS "Minutes",
    DATE_FORMAT('10:07:30.123456', '%s') AS "Seconds",
    DATE_FORMAT('10:07:30.123456', '%f') AS "Microseconds";

Kết quả:

+-------+---------+---------+--------------+
| Hours | Minutes | Seconds | Microseconds |
+-------+---------+---------+--------------+
| NULL  | NULL    | NULL    | NULL         |
+-------+---------+---------+--------------+
1 row in set, 4 warnings (0.003 sec)

Hãy xem cảnh báo:

SHOW WARNINGS;

Kết quả:

+---------+------+---------------------------------------------+
| Level   | Code | Message                                     |
+---------+------+---------------------------------------------+
| Warning | 1292 | Incorrect datetime value: '10:07:30.123456' |
| Warning | 1292 | Incorrect datetime value: '10:07:30.123456' |
| Warning | 1292 | Incorrect datetime value: '10:07:30.123456' |
| Warning | 1292 | Incorrect datetime value: '10:07:30.123456' |
+---------+------+---------------------------------------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hỗ trợ cho MariaDB 10.4 trong dbForge Studio được nâng cấp cho MySQL, v.8.1

  2. MariaDB JSON_VALUE () so với JSON_QUERY ():Sự khác biệt là gì?

  3. 3 cách trả lại Modulo trong MariaDB

  4. Xử lý các vấn đề sao chép từ các cụm cơ sở dữ liệu MariaDB không phải GTID sang GTID MariaDB

  5. Sự khác biệt giữa SYSDATE () và NOW () trong MariaDB