MySQL 格式化时间戳

MySQL 格式化时间戳

MySQL 格式化时间戳

概述

在数据库中,经常需要存储和处理时间相关的数据。MySQL 提供了多种函数和方法来处理时间戳,使得我们可以轻松地格式化时间戳以满足我们的需求。

本文将详细介绍 MySQL 中如何格式化时间戳,包括日期格式化、时间格式化、日期时间格式化等。我们将逐步介绍不同的函数和方法,并给出相应的示例代码和运行结果。

日期格式化

在数据库中,日期通常以日期格式存储。MySQL 提供了 DATE_FORMAT 函数来格式化日期。

语法如下:

DATE_FORMAT(date, format)

其中,date 是一个日期或日期时间值,format 是一个字符串,用于指定日期的格式。

下表列出了常用的日期格式选项:

格式选项 说明 示例
%Y 四位数的年份 2019
%y 两位数的年份 19
%M 月份的英文全名 January
%b 月份的英文缩写 Jan
%m 两位数的月份 01
%d 两位数的日期 01
%e 日期,不含前导零 1
%W 星期的英文全名 Monday
%a 星期的英文缩写 Mon
%w 星期的数字表示,0-6 1
%H 24 小时制的小时 13
%h 12 小时制的小时 01
%i 两位数的分钟 30
%s 两位数的秒钟 05
%p AM 或 PM PM
%r 12 小时制的时间 01:30:05 PM
%T 24 小时制的时间 13:30:05
%c 月份的数字表示,1-12 1
%j 一年中的第几天,三位数 001
%U 一年中的第几周,两位数 01

以下是一些常用的日期格式化示例:

SELECT DATE_FORMAT('2019-01-01', '%Y-%m-%d');     -- 输出:2019-01-01
SELECT DATE_FORMAT('2019-01-01', '%d/%m/%Y');     -- 输出:01/01/2019
SELECT DATE_FORMAT('2019-01-01', '%M %d, %Y');    -- 输出:January 01, 2019
SELECT DATE_FORMAT('2019-01-01', '%d %b, %Y');    -- 输出:01 Jan, 2019
SELECT DATE_FORMAT('2019-01-01', '%a, %M %d');    -- 输出:Tue, January 01

时间格式化

类似日期格式化,MySQL 也提供了 TIME_FORMAT 函数来格式化时间。

语法如下:

TIME_FORMAT(time, format)

其中,time 是一个时间值,format 是一个字符串,用于指定时间的格式。

下表列出了常用的时间格式选项:

格式选项 说明 示例
%H 24 小时制的小时 13
%h 12 小时制的小时 01
%i 两位数的分钟 30
%s 两位数的秒钟 05
%p AM 或 PM PM
%r 12 小时制的时间 01:30:05
%T 24 小时制的时间 13:30:05

以下是一些常用的时间格式化示例:

SELECT TIME_FORMAT('13:30:05', '%H:%i');    -- 输出:13:30
SELECT TIME_FORMAT('13:30:05', '%h:%i %p'); -- 输出:01:30 PM
SELECT TIME_FORMAT('13:30:05', '%r');       -- 输出:01:30:05 PM
SELECT TIME_FORMAT('13:30:05', '%T');       -- 输出:13:30:05

日期时间格式化

除了日期和时间的单独格式化,有时我们还需要对日期时间值进行格式化。MySQL 提供了 DATE_FORMAT 函数来同时格式化日期和时间。

语法如下:

DATE_FORMAT(datetime, format)

其中,datetime 是一个日期时间值,format 是一个字符串,用于指定日期时间的格式。

下表列出了常用的日期时间格式选项:

格式选项 说明 示例
%Y 四位数的年份 2019
%y 两位数的年份 19
%M 月份的英文全名 January
%b 月份的英文缩写 Jan
%m 两位数的月份 01
%d 两位数的日期 01
%e 日期,不含前导零 1
%W 星期的英文全名 Monday
%a 星期的英文缩写 Mon
%w 星期的数字表示,0-6 1
%H 24 小时制的小时 13
%h 12 小时制的小时 01
%i 两位数的分钟 30
%s 两位数的秒钟 05
%p AM 或 PM PM
%r 12 小时制的时间 01:30:05 PM
%T 24 小时制的时间 13:30:05
%c 月份的数字表示,1-12 1
%j 一年中的第几天,三位数 001
%U 一年中的第几周,两位数 01

以下是一些常用的日期时间格式化示例:

SELECT DATE_FORMAT('2019-01-01 13:30:05', '%Y-%m-%d %H:%i:%s');       -- 输出:2019-01-01 13:30:05
SELECT DATE_FORMAT('2019-01-01 13:30:05', '%d/%m/%Y %h:%i:%s %p');    -- 输出:01/01/2019 01:30:05 PM
SELECT DATE_FORMAT('2019-01-01 13:30:05', '%M %d, %Y %r');           -- 输出:January 01, 2019 01:30:05 PM
SELECT DATE_FORMAT('2019-01-01 13:30:05', '%d %b, %Y %T');           -- 输出:01 Jan, 2019 13:30:05
SELECT DATE_FORMAT('2019-01-01 13:30:05', '%a, %M %d %h:%i %p');     -- 输出:Tue, January 01 01:30 PM

总结

MySQL 提供了多种函数和方法来格式化时间戳,包括日期格式化、时间格式化、日期时间格式化等。通过使用这些函数,我们可以根据需求轻松地格式化时间戳。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程