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 秒
廣告
© . All rights reserved.