MariaDB TIME_FORMAT() 函数的基础用法与实例

MariaDB TIME_FORMAT() 函数用来根据指定的格式化字符串,将时间值格式化为字符串。

发布于

MariaDB TIME_FORMAT() 函数用来根据指定的格式化字符串,将时间值格式化为字符串。它非常适合于需要以特定格式显示时间的场景,例如记录、报告或日志等。

语法

MairaDB TIME_FORMAT() 函数的语法如下:

TIME_FORMAT(time, format)
  • time:要格式化的时间值,可以是一个 TIMEDATETIMETIMESTAMP 值。
  • format:定义输出格式的字符串,可以包含格式化规范码。

该函数返回一个字符串,代表按照指定格式显示的时间值。

实例

格式化时间值

本示例演示如何将一个时间值格式化为指定的字符串格式。

SELECT TIME_FORMAT('18:25:30', '%H:%i:%s') AS Time;

以下是该语句的输出:

+----------+
| Time     |
+----------+
| 18:25:30 |
+----------+

本实例使用 TIME_FORMAT() 函数将字符串 '18:25:30' 格式化为 '%H:%i:%s' 格式,即按 '时:分:秒' 格式显示。

格式化日期时间值

本示例演示如何格式化一个日期时间值。

DROP TABLE IF EXISTS test;
CREATE TABLE test (created_at DATETIME);
INSERT INTO test VALUES ('2023-03-14 15:30:25'), ('2023-03-15 09:45:12');

SELECT created_at,
       TIME_FORMAT(created_at, '%r') AS Time12,
       TIME_FORMAT(created_at, '%T') AS Time24
FROM test;

以下是该语句的输出:

+---------------------+-------------+----------+
| created_at          | Time12      | Time24   |
+---------------------+-------------+----------+
| 2023-03-14 15:30:25 | 03:30:25 PM | 15:30:25 |
| 2023-03-15 09:45:12 | 09:45:12 AM | 09:45:12 |
+---------------------+-------------+----------+

本实例先创建一个包含 DATETIME 类型字段的表,并插入两行测试数据。然后使用 TIME_FORMAT() 函数将 created_at 字段的值分别格式化为 12 小时制和 24 小时制的时间字符串。

使用精度格式化时间

本示例演示如何使用小数点后位数指定时间精度。

SELECT TIME_FORMAT('18:25:30.123456', '%H:%i:%s.%f') AS Time;

以下是该语句的输出:

+-----------------+
| Time            |
+-----------------+
| 18:25:30.123456 |
+-----------------+

%f 格式规范码用于显示微秒部分,显示精度取决于输入值的精度。本例中输入值的微秒精度为 6 位,因此输出字符串也保留了 6 位微秒。

格式化时间为文本

本示例演示如何将时间值格式化为非时间文本。

SELECT TIME_FORMAT('14:25:00', '%l %p') AS Output;

以下是该语句的输出:

+--------+
| Output |
+--------+
| 2 PM   |
+--------+

本示例使用了 %l 格式规范码表示小时(1-12),%p 表示 AM/PM。因此,输出 '2 PM' 表示下午 2 点。

格式化为自定义格式

本示例演示如何使用自定义字符串格式化时间值。

SET @time = '18:30:59';

SELECT TIME_FORMAT(@time, 'Time: %r  Seconds: %s') AS Output;

以下是该语句的输出:

+--------------------------------+
| Output                         |
+--------------------------------+
| Time: 06:30:59 PM  Seconds: 59 |
+--------------------------------+

自定义格式字符串可以包含任意文本和特殊的格式规范码。本例中除了使用 %r 格式化为 12 小时制的时间,还使用 %s 格式化为秒值,其余是普通文本。

相关函数

以下是几个与 MairaDB TIME_FORMAT() 相关的几个函数:

  • MariaDB DATE_FORMAT() 函数用来格式化日期值或日期时间值的日期部分。
  • MariaDB UNIX_TIMESTAMP() 函数返回一个 Unix 时间戳。
  • MariaDB FROM_UNIXTIME() 函数将 Unix 时间戳转换为日期时间字符串。
  • MariaDB STR_TO_DATE() 函数将字符串转换为日期时间格式。

结论

MariaDB TIME_FORMAT() 函数是一个非常有用的函数,可以将时间值格式化为指定的字符串格式。通过这个函数,我们可以轻松地控制时间值的显示方式,满足不同场景的需求。本文介绍了该函数的语法、示例和相关函数,希望对您有所帮助。