MariaDB TO_CHAR() 函数使用指南

在 MariaDB 中,TO_CHAR() 是一个内置的字符串函数,它将给定的日期/时间值按照给定的格式转换为字符串。

MariaDB TO_CHAR() 语法

这里是 MariaDB TO_CHAR() 函数的语法:

TO_CHAR(v[, fmt])

参数

v
必需的。日期/时间值。 你应该使用字符串提供该参数。
fmt
可选的。转换时依据的格式。格式字符串可以是以下任何一种或者几种的组合:
  • YYYY
  • YYY
  • YY
  • RRRR
  • RR
  • MM
  • MON
  • MONTH
  • MI
  • DD
  • DY
  • HH
  • HH12
  • HH24
  • SS
  • 特殊字符

YYYY-MM-DD HH24:MI:SS 默认的格式。

如果您不提供参数或提供了错误数量的参数, MariaDB 将报告一个错误:ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TO_CHAR'

返回值

MariaDB TO_CHAR() 函数返回一个字符串,它由给定的日期/时间值按照给定的格式转换而来。

MariaDB TO_CHAR() 示例

基本示例

这个语句展示了如何使用 MariaDB TO_CHAR() 函数将日期 2023-01-01 转为字符串:

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

输出:

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

在本示例中,由于没有指定 fmt 参数,TO_CHAR() 使用 YYYY-MM-DD HH24:MI:SS 作为默认的输出格式。

您也可以使用 TO_CHAR() 输出一个日期时间值,如下:

SELECT TO_CHAR('2023-01-01 01:01:01');

输出:

+--------------------------------+
| TO_CHAR('2023-01-01 01:01:01') |
+--------------------------------+
| 2023-01-01 01:01:01            |
+--------------------------------+

指定格式

下面的语句使用 MariaDB TO_CHAR() 函数按照 YYYY-MM-DD 格式输出一个日期时间值:

SELECT TO_CHAR('2023-01-01 01:01:01', 'YYYY-MM-DD');

输出:

+----------------------------------------------+
| TO_CHAR('2023-01-01 01:01:01', 'YYYY-MM-DD') |
+----------------------------------------------+
| 2022-12-25                                   |
+----------------------------------------------+

您同样可以只输出 年份,如下:

SELECT TO_CHAR('2023-01-01 01:01:01', 'YYYY');

输出:

+----------------------------------------+
| TO_CHAR('2023-01-01 01:01:01', 'YYYY') |
+----------------------------------------+
| 2022                                   |
+----------------------------------------+

无效日期

如果您提供了一个无效的日期,TO_CHAR() 将返回 NULL 并显示警告:

SELECT TO_CHAR('2023-02-31');

输出:

+-----------------------+
| TO_CHAR('2023-02-31') |
+-----------------------+
| NULL                  |
+-----------------------+

让我们检查一下警告:

SHOW WARNINGS;

输出:

+---------+------+----------------------------------------+
| Level   | Code | Message                                |
+---------+------+----------------------------------------+
| Warning | 1292 | Incorrect datetime value: '2023-02-31' |
+---------+------+----------------------------------------+

无效格式

如果您提供了一个无效的格式,TO_CHAR() 将返回一个错误:

SELECT TO_CHAR('2023-01-01', 'This is a invalid format');

输出:

ERROR 3047 (HY000): Invalid argument error: date format not recognized at This is a invalid format in function to_char.

结论

在 MariaDB 中,TO_CHAR() 是一个内置的字符串函数,它将给定的日期/时间值按照给定的格式转换为字符串。