MySQL TIME_FORMAT() Function

Summary: in this tutorial, you will learn how to use the MySQL TIME_FORMAT() function to format time values.

Introduction to MySQL TIME_FORMAT() function

The TIME_FORMAT() function allows you to format a time value according to a specific format.

Here’s the syntax of the TIME_FORMAT() function:

TIME_FORMAT(time, format)Code language: SQL (Structured Query Language) (sql)

In this syntax:

  • time: The time value that you want to format.
  • format: The format string that determines how you want to format the time value.

The TIME_FORMAT() returns a string representing the formatted time according to the format string.

If the time or format is NULL, the TIME_FORMAT() function returns NULL.

Since the TIME_FORMAT() only formats time data, the format string contains format specifiers only for hours, minutes, seconds, and microseconds.

The TIME_FORMAT() function is useful for presenting time data in various formats to make it suitable for your applications.

Time format specifiers

The following shows a list of some common format specifiers that you can use in the TIME_FORMAT() function:

  • %H: Hour (00-23)
  • %h: Hour (01-12)
  • %i: Minutes (00-59)
  • %s: Seconds (00-59)
  • %p: AM or PM

MySQL TIME_FORMAT() function examples

Let’s take some examples of using the TIME_FORMAT() function.

1) Simple TIMEFORMAT() function example

The following example uses the TIME_FORMAT() function to format the time literal value '15:30:45':

SELECT TIME_FORMAT('15:30:45', '%h:%i %p');Code language: SQL (Structured Query Language) (sql)

Output:

+-------------------------------------+
| TIME_FORMAT('15:30:45', '%h:%i %p') |
+-------------------------------------+
| 03:30 PM                            |
+-------------------------------------+
1 row in set (0.00 sec)Code language: plaintext (plaintext)

2) Using the TIME_FORMAT() function with table data

First, create a new table called appointments with the following structure:

CREATE TABLE appointments (
    id INT AUTO_INCREMENT PRIMARY KEY,
    time TIME NOT NULL,
    description VARCHAR(255) NOT NULL
);Code language: SQL (Structured Query Language) (sql)

The appointments table has three columns:

  • id: An auto-incremented primary key.
  • time: A column to store the time of the appointment.
  • description: A column to store a description of the appointment.

Second, insert some rows into the appointments table:

INSERT INTO appointments (time, description) 
VALUES
    ('10:00:00', 'Meeting with client'),
    ('14:30:00', 'Team discussion'),
    ('16:45:00', 'Project presentation'),
    ('18:15:00', 'Dinner with colleagues');Code language: SQL (Structured Query Language) (sql)

Third, use the TIME_FORMAT() function to format the time data of the appointments table:

SELECT 
  id, 
  description, 
  TIME_FORMAT(time, '%h:%i %p') AS time 
FROM 
  appointments;Code language: SQL (Structured Query Language) (sql)

Output:

+----+------------------------+----------+
| id | description            | time     |
+----+------------------------+----------+
|  1 | Meeting with client    | 10:00 AM |
|  2 | Team discussion        | 02:30 PM |
|  3 | Project presentation   | 04:45 PM |
|  4 | Dinner with colleagues | 06:15 PM |
+----+------------------------+----------+
4 rows in set (0.00 sec)Code language: plaintext (plaintext)

In this example, we select data from the appointments table and use the TIME_FORMAT() function to format the time column into a more readable format.

Summary

  • Use the TIME_FORMAT() function to format a time value according to a format.
Was this tutorial helpful?