MySQL - TIME_FORMAT() 函数



MYSQL 的TIME_FORMAT()函数接受日期或日期时间值和格式字符串(表示所需的日期/时间格式)作为参数,以指定的格式格式化给定的日期,并返回结果。

MySQL 为所有时间数据类型保存一些默认格式,其中列出了日期和时间值,如下所示

类型 格式
DATE YYYY-MM-DD
TIME HH:MM:SS
DATETIME YYYY-MM-DD HH:MI:SS
TIMESTAMP YYYY-MM-DD HH:MI:SS
YEAR YYYY

格式字符串

有一些具有预定义含义的字符,您可以使用它们来创建格式字符串。它们是 -

类型 格式
%f 微秒(000000..999999)
%H 小时(00..23)
%h 小时(01..12)
%I 小时(01..12)
%i 分钟,数字(00..59)
%k 小时(0..23)
%l 小时(1..12)
%p AM 或 PM
%r 时间,12 小时制(hh:mm:ss 后跟 AM 或 PM)
%S 秒(00..59)
%s 秒(00..59)
%s 秒(00..59)
%T 时间,24 小时制(hh:mm:ss)

语法

以下是 MySQL TIME_FORMAT() 函数的语法 -

TIME_FORMAT(date,format);

参数

此方法接受两个参数。下面描述了相同的内容 -

  • date: 要格式化的时间值。

  • format: 要显示时间值的格式。

返回值

此函数返回一个字符串,表示根据指定的格式格式化的时间值。

示例

在以下查询中,我们使用TIME_FORMAT()函数将时间“10:30:35”格式化为自定义显示格式,显示小时和分钟 -

SELECT TIME_FORMAT('10:30:35', '%H Hours %i Minutes') As Result;

输出

这将产生以下结果 -

结果
10 小时 30 分钟

示例

如果我们只指定一个值,则此函数将其视为秒值。

SELECT TIME_FORMAT('09', '%T') As Result;

输出

以下是输出 -

结果
00:00:09

示例

如果我们不指定秒值,则此函数将其视为0

SELECT TIME_FORMAT('10:12', '%T') As Result;

输出

以下是输出 -

结果
10:12:00

示例

以下查询以 24 小时制格式打印给定时间 -

SELECT TIME_FORMAT('19:45:00', '%r') As Result;

输出

以下是输出 -

结果
晚上 07:45:00

示例

在此示例中,我们使用以下 CREATE TABLE 查询创建了一个名为SUBSCRIBERS的表 -

CREATE TABLE SUBSCRIBERS(
   NAME varchar(255),
   PACKAGENAME varchar(255),
   SUBSCRIPTIONDATE date,
   SUBSCRIPTIONTIME time
);

现在,使用 INSERT 语句将以下记录插入 SUBSCRIBERS 表中 -

INSERT INTO SUBSCRIBERS VALUES
('Raja', 'Premium', Date('2020-10-21'), Time('20:53:49')),
('Roja', 'Basic', Date('2020-11-26'), Time('10:13:19')),
('Puja', 'Moderate', Date('2021-03-07'), Time('05:43:20')),
('Vanaja', 'Basic', Date('2021-02-21'), Time('16:36:39')),
('Jalaja', 'Premium', Date('2021-01-30'), Time('12:45:45'));

执行以下查询以在上面创建的表中获取所有插入的记录 -

Select * From SUBSCRIBERS;

以下是 SUBSCRIBERS 表 -

姓名 套餐名称 订阅日期 订阅时间
拉贾 高级 2020-10-21 20:53:49
罗贾 基础 2020-11-26 10:13:19
普贾 中等 2021-03-07 05:43:20
瓦纳贾 基础 2021-02-21 16:36:39
贾拉贾 高级 2021-01-30 12:45:45

这里,我们使用 MySQL TIME_FORMAT() 函数将“SubscriptionTime”列转换为格式化的时间字符串,该字符串显示小时、分钟和秒 -

SELECT NAME, PACKAGENAME,
TIME_FORMAT(SubscriptionTime, '%H Hours %i Minutes %s Seconds')
As Result FROM SUBSCRIBERS;

输出

输出显示如下 -

姓名 套餐名称 结果
拉贾 高级 20 小时 53 分钟 49 秒
罗贾 基础 10 小时 13 分钟 19 秒
普贾 中等 05 小时 43 分钟 20 秒
瓦纳贾 基础 16 小时 36 分钟 39 秒
贾拉贾 高级 12 小时 45 分钟 45 秒
广告