MySQL时间函数概述

MySQL是一种广泛使用的关系型数据库管理系统,它提供了丰富的内置函数来处理日期和时间数据。时间函数在数据库操作中扮演着重要角色,尤其是在处理与时间相关的业务逻辑时。本文将详细介绍MySQL中的时间函数,包括其用法、参数和示例。

获取当前日期和时间

NOW():返回当前的日期和时间。

CURDATE():返回当前的日期(不包括时间)。

CURTIME():返回当前的时间(不包括日期)。

CURRENTTIMESTAMP():返回当前的日期和时间。

SELECT NOW(); -- 结果:'2023-04-01 12:45:31'

SELECT CURDATE(); -- 结果:'2023-04-01'

SELECT CURTIME(); -- 结果:'12:45:31'

SELECT CURRENTTIMESTAMP(); -- 结果:'2023-04-01 12:45:31'

日期和时间的格式化

MySQL提供了DATE_FORMAT()函数来格式化日期和时间。该函数可以将日期和时间转换为指定的格式。

SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s'); -- 结果:'2023-04-01 12:45:31'

DATE_FORMAT()函数的占位符包括:

%Y:年份(4位数字)

%m:月份(01-12)

%d:日期(01-31)

%H:小时(00-23)

%i:分钟(00-59)

%s:秒(00-59)

日期和时间的计算

MySQL提供了DATE_ADD()和DATE_SUB()函数来计算日期和时间的加减操作。

DATE_ADD(date, INTERVAL expr type):在指定日期上加上一个时间间隔。

DATE_SUB(date, INTERVAL expr type):从指定日期中减去一个时间间隔。

SELECT DATE_ADD('2023-04-01', INTERVAL 1 DAY); -- 结果:'2023-04-02'

SELECT DATE_SUB('2023-04-01', INTERVAL 1 MONTH); -- 结果:'2023-03-01'

时间间隔expr可以是一个正数或负数,type可以是以下几种:

YEAR:年

MONTH:月

DAY:日

HOUR:小时

MINUTE:分钟

SECOND:秒

提取日期和时间的组成部分

MySQL提供了YEAR()、MONTH()、DAY()等函数来提取日期和时间的组成部分。

YEAR(date):提取年份。

MONTH(date):提取月份。

DAY(date):提取日期。

HOUR(time):提取小时。

MINUTE(time):提取分钟。

SECOND(time):提取秒。

SELECT YEAR(NOW()); -- 结果:2023

SELECT MONTH(NOW()); -- 结果:4

SELECT DAY(NOW()); -- 结果:1

SELECT HOUR(NOW()); -- 结果:12

SELECT MINUTE(NOW()); -- 结果:45

SELECT SECOND(NOW()); -- 结果:31