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

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

Trong MariaDB, TO_CHAR() là một hàm chuỗi tích hợp để chuyển đổi một biểu thức ngày / giờ thành một chuỗi.

Biểu thức có thể là giá trị ngày tháng, ngày tháng năm, thời gian hoặc dấu thời gian.

Chức năng này đã được giới thiệu trong MariaDB 10.6.1 để nâng cao khả năng tương thích với Oracle.

Cú pháp

Cú pháp như sau:

TO_CHAR(expr[, fmt])

Ở đâu expr là giá trị ngày, giờ, giờ hoặc dấu thời gian và fmt là một chuỗi định dạng tùy chọn chỉ định cách định dạng đầu ra.

Chuỗi định dạng có thể là bất kỳ chuỗi nào sau đây:

  • YYYY
  • YYY
  • YY
  • RRRR
  • RR
  • MM
  • MON
  • MONTH
  • MI
  • DD
  • DY
  • HH
  • HH12
  • HH24
  • SS
  • Các ký tự đặc biệt

Giá trị mặc định là YYYY-MM-DD HH24:MI:SS .

Ví dụ

Dưới đây là một ví dụ để chứng minh:

SELECT TO_CHAR('2020-01-01');

Kết quả:

+-----------------------+
| TO_CHAR('2020-01-01') |
+-----------------------+
| 2020-01-01 00:00:00   |
+-----------------------+

Chuyển giá trị ngày giờ

Ví dụ này sử dụng giá trị ngày giờ:

SELECT TO_CHAR('2022-12-25 10:30:45');

Kết quả:

+--------------------------------+
| TO_CHAR('2022-12-25 10:30:45') |
+--------------------------------+
| 2022-12-25 10:30:45            |
+--------------------------------+

Chỉ định một chuỗi định dạng

Dưới đây là một ví dụ với chuỗi định dạng:

SELECT TO_CHAR('2022-12-25 10:30:45', 'YYYY-MM-DD');

Kết quả:

+----------------------------------------------+
| TO_CHAR('2022-12-25 10:30:45', 'YYYY-MM-DD') |
+----------------------------------------------+
| 2022-12-25                                   |
+----------------------------------------------+

Đây là một cái khác:

SELECT TO_CHAR('2022-12-25', 'DY, DD MONTH YYYY');

Kết quả:

+--------------------------------------------+
| TO_CHAR('2022-12-25', 'DY, DD MONTH YYYY') |
+--------------------------------------------+
| Sun, 25 December  2022                     |
+--------------------------------------------+

Số ngày

Đây là những gì sẽ xảy ra khi tôi cung cấp một ngày dạng số:

SELECT TO_CHAR(20200101);

Kết quả:

ERROR 3047 (HY000): Invalid argument error: data type of first argument must be type date/datetime/time or string in function to_char.

Ngày không hợp lệ

Nếu ngày không hợp lệ, TO_CHAR() trả về null với một cảnh báo:

SELECT TO_CHAR('2020-01-51');

Kết quả:

+-----------------------+
| TO_CHAR('2020-01-51') |
+-----------------------+
| NULL                  |
+-----------------------+
1 row in set, 1 warning (0.001 sec)

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

SHOW WARNINGS;

Kết quả:

+---------+------+----------------------------------------+
| Level   | Code | Message                                |
+---------+------+----------------------------------------+
| Warning | 1292 | Incorrect datetime value: '2020-01-51' |
+---------+------+----------------------------------------+

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

Nếu chuỗi định dạng không hợp lệ, TO_CHAR() trả về một lỗi:

SELECT TO_CHAR('2020-01-01', 'wow');

Kết quả:

ERROR 3047 (HY000): Invalid argument error: date format not recognized at wow in function to_char.

Chuỗi định dạng rỗng

TO_CHAR() trả về null nếu chuỗi định dạng là null :

SELECT TO_CHAR('2020-01-01', null);

Kết quả:

+-----------------------------+
| TO_CHAR('2020-01-01', null) |
+-----------------------------+
| NULL                        |
+-----------------------------+

Số lượng đối số không hợp lệ

Việc chuyển một số lượng đối số không hợp lệ (hoặc không có đối số) dẫn đến lỗi:

SELECT TO_CHAR();

Kết quả:

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

  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 YEARWEEK () hoạt động trong MariaDB

  2. Ngôn ngữ ngày và giờ có sẵn trong MariaDB

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

  4. Thông báo ClusterControl 1.5 - Có xác minh sao lưu tự động và tải lên đám mây

  5. Tùy chọn sao lưu đám mây cho cơ sở dữ liệu MySQL &MariaDB