MySQL DATE_FORMAT 函数详解
引言
MySQL 是一种常用的关系型数据库管理系统,提供了丰富的函数用于处理日期和时间数据。其中,DATE_FORMAT
函数用于将日期和时间数据格式化为指定的字符串。
本文将详细介绍 DATE_FORMAT
函数的用法,包括参数、返回结果以及常见的格式化字符串示例。同时,为了更好地理解函数的使用,我们将通过代码示例、类图和序列图的形式进行说明。
DATE_FORMAT
函数概述
DATE_FORMAT
函数用于将日期和时间数据格式化为字符串。其基本语法如下所示:
DATE_FORMAT(date, format)
其中,date
参数表示待格式化的日期或时间数据,可以是日期、日期时间或时间类型的字段、变量或常量;format
参数是一个字符串,用于指定将 date
格式化为什么样的字符串。
DATE_FORMAT
函数示例
格式化日期
我们首先来看一下如何使用 DATE_FORMAT
函数将日期格式化为指定的字符串。假设我们有一个存储了日期数据的表 users
,其中包含了 birthday
字段。
CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(50),
birthday DATE
);
INSERT INTO users (id, name, birthday)
VALUES (1, 'John', '1990-12-25');
现在,我们想要将 birthday
字段的日期格式化为 YYYY年MM月DD日
的形式。可以使用以下 SQL 语句:
SELECT DATE_FORMAT(birthday, '%Y年%m月%d日') AS formatted_birthday
FROM users;
运行以上 SQL 语句后,将会得到如下结果:
formatted_birthday |
---|
1990年12月25日 |
格式化日期时间
除了日期,DATE_FORMAT
函数同样可以用于格式化日期时间数据。假设我们有一个存储了日期时间数据的表 orders
,其中包含了 order_time
字段。
CREATE TABLE orders (
id INT PRIMARY KEY,
product VARCHAR(50),
order_time DATETIME
);
INSERT INTO orders (id, product, order_time)
VALUES (1, 'Apple', '2022-02-01 10:30:00');
现在,我们想要将 order_time
字段的日期时间格式化为 YYYY-MM-DD HH:mm:ss
的形式。可以使用以下 SQL 语句:
SELECT DATE_FORMAT(order_time, '%Y-%m-%d %H:%i:%s') AS formatted_order_time
FROM orders;
运行以上 SQL 语句后,将会得到如下结果:
formatted_order_time |
---|
2022-02-01 10:30:00 |
格式化时间
除了日期和日期时间,DATE_FORMAT
函数还可以用于格式化时间数据。假设我们有一个存储了时间数据的表 events
,其中包含了 start_time
字段。
CREATE TABLE events (
id INT PRIMARY KEY,
title VARCHAR(50),
start_time TIME
);
INSERT INTO events (id, title, start_time)
VALUES (1, 'Meeting', '14:30:00');
现在,我们想要将 start_time
字段的时间格式化为 HH:mm:ss
的形式。可以使用以下 SQL 语句:
SELECT DATE_FORMAT(start_time, '%H:%i:%s') AS formatted_start_time
FROM events;
运行以上 SQL 语句后,将会得到如下结果:
formatted_start_time |
---|
14:30:00 |
DATE_FORMAT
函数常见格式化字符串
DATE_FORMAT
函数支持多种格式化字符串,下面是一些常见的格式化字符串示例:
%Y
:四位数的年份,例如:2022%y
:两位数的年份,例如:22%m
:两位数的月份(01-12)%c
:月份(1-12)%d
:两位数的日期(01-31)%e
:日期(1-31)%H
:24 小时制的小时数(00-23)%h
:12 小时制的小时数(01-12)%i
:两位数的分钟数(00-59)