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

4 Chức năng để Nhận Giờ từ Giá trị Thời gian trong MariaDB

Dưới đây là 4 chức năng cho phép bạn trả về giờ từ một giá trị thời gian trong MariaDB.

HOUR() Chức năng

HOUR() hàm trả về giờ cho một TIME nhất định hoặc DATETIME biểu hiện. Nó chấp nhận một đối số, đó là thời gian bạn muốn trích xuất giờ.

Ví dụ:

SELECT HOUR('03:45:30');

Kết quả:

+------------------+
| HOUR('03:45:30') |
+------------------+
|                3 |
+------------------+

Đối với giá trị thời gian trong ngày, nó trả về giờ dưới dạng một số trong phạm vi 0 thành 23 . Tuy nhiên, phạm vi TIME giá trị có thể lớn hơn nhiều và do đó, giá trị trả về có thể cao hơn nhiều so với 23 . Cụ thể, TIME giá trị có thể nằm trong khoảng '-838:59:59.999999' thành '838:59:59.999999' .

Dưới đây là một ví dụ với phần giờ lớn hơn:

SELECT HOUR('838:45:30');

Kết quả:

+-------------------+
| HOUR('838:45:30') |
+-------------------+
|               838 |
+-------------------+

Nếu thời gian nằm ngoài phạm vi được chấp nhận cho TIME giá trị, giá trị trả về là 838 với một cảnh báo.

TIME giá trị cũng có thể âm. Trong những trường hợp như vậy, HOUR() trả về một giá trị dương.

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ờ (cũng như các đơn vị khác) từ giá trị thời gian.

Ví dụ:

SELECT EXTRACT(HOUR FROM '10:47:01');

Kết quả:

+-------------------------------+
| EXTRACT(HOUR FROM '10:47:01') |
+-------------------------------+
|                            10 |
+-------------------------------+

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ề giờ (cũng như phút và giây) từ thời gian. Có nhiều tùy chọn khác nhau để trả lại giờ.

Dưới đây là một ví dụ trả về giờ ở nhiều dạng khác nhau:

SELECT 
    TIME_FORMAT('18:45:30', '%H') AS '%H',
    TIME_FORMAT('18:45:30', '%h') AS '%h',
    TIME_FORMAT('18:45:30', '%I') AS '%I',
    TIME_FORMAT('18:45:30', '%k') AS '%k',
    TIME_FORMAT('18:45:30', '%l') AS '%l';

Kết quả:

+------+------+------+------+------+
| %H   | %h   | %I   | %k   | %l   |
+------+------+------+------+------+
| 18   | 06   | 06   | 18   | 6    |
+------+------+------+------+------+

Dưới đây là mô tả về từng mã định dạng đó:

Định dạng chỉ định Mô tả
%H Giờ có 2 chữ số từ 00-23.
%h Giờ có 2 chữ số từ 01 đến 12.
%I Giờ có 2 chữ số từ 01 đến 12.
%k Giờ có 1 chữ số từ 0-23.
%l Giờ có 1 chữ số từ 1 đến 12.

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ố. 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. 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 18:45:30', '%H') AS '%H',
    DATE_FORMAT('2023-01-01 18:45:30', '%h') AS '%h',
    DATE_FORMAT('2023-01-01 18:45:30', '%I') AS '%I',
    DATE_FORMAT('2023-01-01 18:45:30', '%k') AS '%k',
    DATE_FORMAT('2023-01-01 18:45:30', '%l') AS '%l';

Kết quả:

+------+------+------+------+------+
| %H   | %h   | %I   | %k   | %l   |
+------+------+------+------+------+
| 18   | 06   | 06   | 18   | 6    |
+------+------+------+------+------+

Chỉ vượt qua một TIME giá trị không hoàn toàn cắt nó với chức năng này:

SELECT 
    DATE_FORMAT('18:45:30', '%H') AS '%H',
    DATE_FORMAT('18:45:30', '%h') AS '%h',
    DATE_FORMAT('18:45:30', '%I') AS '%I',
    DATE_FORMAT('18:45:30', '%k') AS '%k',
    DATE_FORMAT('18:45:30', '%l') AS '%l';

Kết quả:

+------+------+------+------+------+
| %H   | %h   | %I   | %k   | %l   |
+------+------+------+------+------+
| NULL | NULL | NULL | NULL | NULL |
+------+------+------+------+------+
1 row in set, 5 warnings (0.000 sec)

Hiển thị các cảnh báo:

SHOW WARNINGS;

Kết quả:

+---------+------+--------------------------------------+
| Level   | Code | Message                              |
+---------+------+--------------------------------------+
| Warning | 1292 | Incorrect datetime value: '18:45:30' |
| Warning | 1292 | Incorrect datetime value: '18:45:30' |
| Warning | 1292 | Incorrect datetime value: '18:45:30' |
| Warning | 1292 | Incorrect datetime value: '18:45:30' |
| Warning | 1292 | Incorrect datetime value: '18:45:30' |
+---------+------+--------------------------------------+

  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 hoạt động của RPAD () trong MariaDB

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

  3. MariaDB VERSION () Giải thích

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

  5. MariaDB CONNECTION_ID () Giải thích