MySQL年月日格式详解

1. 前言

在MySQL数据库中,日期和时间是常见的数据类型。但是,日期和时间的表示方式有很多种,而且在不同的应用场景中需要使用不同的格式。本文将详细介绍MySQL中日期和时间的格式化,并提供相应的代码示例。

2. 日期和时间数据类型

在MySQL中,有三种常见的日期和时间数据类型,分别是DATETIMEDATETIME

  • DATE类型用于表示日期,格式为YYYY-MM-DD,例如2022-01-01
  • TIME类型用于表示时间,格式为HH:MM:SS,例如12:30:00
  • DATETIME类型用于表示日期和时间的组合,格式为YYYY-MM-DD HH:MM:SS,例如2022-01-01 12:30:00

另外,MySQL还提供了YEAR类型用于表示年份,格式为YYYY

3. 日期和时间的格式化函数

MySQL提供了一系列的日期和时间格式化函数,可以将日期和时间按照指定的格式进行格式化。下面是一些常用的日期和时间格式化函数。

3.1 DATE_FORMAT()

DATE_FORMAT()函数用于将日期或时间按照指定的格式进行格式化。它的语法如下:

DATE_FORMAT(date, format)

其中,date是需要格式化的日期或时间,可以是一个字段、表达式或常量;format是指定的格式,使用特定的占位符表示日期和时间的不同部分。

下表列出了一些常用的占位符及其对应的含义:

占位符 含义
%Y 四位数的年份
%y 两位数的年份
%m 两位数的月份
%c 带有前导零的月份
%d 两位数的日期
%e 不带前导零的日期
%H 24小时制的小时
%h 12小时制的小时
%i 两位数的分钟
%s 两位数的秒钟
%p AM或PM

下面是几个示例:

SELECT DATE_FORMAT('2022-01-01', '%Y-%m-%d') AS formatted_date;
-- 输出:2022-01-01

SELECT DATE_FORMAT('2022-01-01 12:30:00', '%Y-%m-%d %H:%i:%s') AS formatted_datetime;
-- 输出:2022-01-01 12:30:00

SELECT DATE_FORMAT('2022-01-01 12:30:00', '%Y-%m-%d %h:%i:%s %p') AS formatted_datetime;
-- 输出:2022-01-01 12:30:00 PM

3.2 DATE()

DATE()函数用于从一个日期时间或日期时间表达式中提取日期部分。它的语法如下:

DATE(date)

其中,date是需要提取日期部分的日期或时间。

下面是一个示例:

SELECT DATE('2022-01-01 12:30:00') AS date_part;
-- 输出:2022-01-01

3.3 TIME()

TIME()函数用于从一个日期时间或日期时间表达式中提取时间部分。它的语法如下:

TIME(date)

其中,date是需要提取时间部分的日期或时间。

下面是一个示例:

SELECT TIME('2022-01-01 12:30:00') AS time_part;
-- 输出:12:30:00

3.4 YEAR()

YEAR()函数用于从一个日期或日期时间表达式中提取年份部分。它的语法如下:

YEAR(date)

其中,date是需要提取年份部分的日期或时间。

下面是一个示例:

SELECT YEAR('2022-01-01') AS year_part;
-- 输出:2022

4. 日期和时间的格式化示例

下面是一些常见的