MySQL日期截取
在MySQL中,我们经常需要从日期时间数据中提取特定的部分,例如年、月、日、小时等。为了实现这个目标,MySQL提供了一些内置的函数和操作符。本文将介绍如何使用这些函数和操作符来截取日期和时间,并给出相应的代码示例。
1. DATE格式
在MySQL中,日期和时间可以以不同的格式存储,最常见的格式是YYYY-MM-DD
,即年-月-日。其他常见的格式包括YY-MM-DD
、YYYY-MM-DD HH:MM:SS
等。
2. DATE函数
MySQL提供了一些内置函数,用于从日期时间数据中提取特定的部分。
YEAR()
YEAR()
函数用于提取日期时间数据的年份。下面是一个示例:
SELECT YEAR('2022-12-31');
结果为:
2022
MONTH()
MONTH()
函数用于提取日期时间数据的月份。下面是一个示例:
SELECT MONTH('2022-12-31');
结果为:
12
DAY()
DAY()
函数用于提取日期时间数据的天数。下面是一个示例:
SELECT DAY('2022-12-31');
结果为:
31
HOUR()
HOUR()
函数用于提取日期时间数据的小时数。下面是一个示例:
SELECT HOUR('2022-12-31 23:59:59');
结果为:
23
MINUTE()
MINUTE()
函数用于提取日期时间数据的分钟数。下面是一个示例:
SELECT MINUTE('2022-12-31 23:59:59');
结果为:
59
SECOND()
SECOND()
函数用于提取日期时间数据的秒数。下面是一个示例:
SELECT SECOND('2022-12-31 23:59:59');
结果为:
59
3. DATE_FORMAT函数
除了提取特定部分外,还可以使用DATE_FORMAT()
函数将日期时间数据格式化成所需的字符串。
下面是一些常用的格式化字符:
%Y
:四位数的年份%y
:两位数的年份%m
:两位数的月份(01-12)%d
:两位数的日期(01-31)%H
:24小时制的小时数(00-23)%h
:12小时制的小时数(01-12)%i
:两位数的分钟数(00-59)%s
:两位数的秒数(00-59)%p
:AM或PM
下面是一个示例:
SELECT DATE_FORMAT('2022-12-31 23:59:59', '%Y-%m-%d %H:%i:%s');
结果为:
2022-12-31 23:59:59
4. 操作符
除了使用函数外,还可以使用操作符来截取日期和时间的特定部分。
DATE_SUB()
DATE_SUB()
函数用于减去日期时间数据的一部分。下面是一个示例:
SELECT DATE_SUB('2022-12-31', INTERVAL 1 DAY);
结果为:
2022-12-30
DATE_ADD()
DATE_ADD()
函数用于添加日期时间数据的一部分。下面是一个示例:
SELECT DATE_ADD('2022-12-31', INTERVAL 1 DAY);
结果为:
2023-01-01
EXTRACT()
EXTRACT()
函数用于提取日期时间数据的特定部分。下面是一个示例:
SELECT EXTRACT(YEAR FROM '2022-12-31');
结果为:
2022
5. 示例
下面是一个完整的示例,展示如何使用上述函数和操作符来截取日期和时间:
-- 创建一个示例表
CREATE TABLE `example` (
`id` INT PRIMARY KEY,
`date_time` DATETIME
);
-- 插入示例数据
INSERT INTO `example` VALUES (1, '2022-12-31 23:59:59');
-- 查询截取结果
SELECT
`id`,
`date_time`,
YEAR(`date_time`) AS `year`,
MONTH(`date_time`)