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 | Microseconds (000000..999999) |
%H | Hour (00..23) |
%h | Hour (01..12) |
%I | Hour (01..12) |
%i | Minutes, numeric (00..59) |
%k | Hour (0..23) |
%l | Hour (1..12) |
%p | AM or PM |
%r | Time, 12-hour (hh:mm:ss followed by AM or PM) |
%S | Seconds (00..59) |
%s | Seconds (00..59) |
%s | Seconds (00..59) |
%T | Time, 24-hour (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;
输出
这将产生以下结果 -
Result |
---|
10 Hours 30 Minutes |
示例
如果我们只指定一个值,此函数将假定其为秒值。
SELECT TIME_FORMAT('09', '%T') As Result;
输出
以下是输出结果 -
Result |
---|
00:00:09 |
示例
如果我们没有指定秒数,此函数会将其视为 0。
SELECT TIME_FORMAT('10:12', '%T') As Result;
输出
以下是输出结果 -
Result |
---|
10:12:00 |
示例
以下查询以 24 小时格式打印给定时间 -
SELECT TIME_FORMAT('19:45:00', '%r') As Result;
输出
以下是输出 -
Result |
---|
07:45:00 PM |
示例
在此示例中,我们使用以下 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 表 -
NAME | PACKAGENAME | SUBSCRIPTIONDATE | SUBSCRIPTIONTIME |
---|---|---|---|
Raja | Premium | 2020-10-21 | 20:53:49 |
Roja | Basic | 2020-11-26 | 10:13:19 |
Puja | Moderate | 2021-03-07 | 05:43:20 |
Vanaja | Basic | 2021-02-21 | 16:36:39 |
Jalaja | Premium | 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;
输出
输出显示如下 −
NAME | PACKAGENAME | Result |
---|---|---|
Raja | Premium | 20 Hours 53 Minutes 49 Seconds |
Roja | Basic | 10 Hours 13 Minutes 19 Seconds |
Puja | Moderate | 05 Hours 43 Minutes 20 Seconds |
Vanaja | Basic | 16 Hours 36 Minutes 39 Seconds |
Jalaja | Premium | 12 Hours 45 Minutes 45 Seconds |