您的位置:

MySQL日期查询条件详解

一、日期类型介绍

首先,我们知道MySQL中有几种日期和时间类型:

DATE——仅存日期值——格式为'YYYY-MM-DD'
TIME——仅存时间值——格式为'HH:MM:SS'
DATETIME——存日期和时间值——格式为'YYYY-MM-DD HH:MM:SS'
TIMESTAMP——存日期和时间值,范围为1970年至2037年——格式为'YYYY-MM-DD HH:MM:SS'
YEAR——仅存年份——格式为'YYYY'

每个类型都有它的优缺点,使用时需根据需求进行选择。

二、日期查询方法

1、基本查询

日期查询的最基本方法就是使用'='、'!='、'>'、'<'等运算符对日期进行查询。例如:

SELECT * FROM students WHERE join_date = '2021-01-01';

这条语句可以查询在2021年1月1日加入学校的所有学生。

2、使用BETWEEN

使用'BETWEEN'关键字可以查询某个时间段内的数据,其用法如下:

SELECT * FROM students WHERE join_date BETWEEN '2021-01-01' AND '2021-06-30';

这条语句可以查询2021年1月1日至2021年6月30日加入学校的所有学生。

3、使用IN

'IN'关键字可以用来查询多个日期的数据,其用法如下:

SELECT * FROM students WHERE join_date IN ('2021-01-01', '2021-02-01', '2021-03-01');

这条语句可以查询在2021年1月1日、2月1日或3月1日加入学校的所有学生。

三、日期函数

1、DATEDIFF

'DATEDIFF'函数可以计算两个日期之间的天数差,其用法如下:

SELECT DATEDIFF('2021-06-30', '2021-01-01');

这条语句可以计算出2021年1月1日至2021年6月30日相隔的天数。

2、DATE_ADD和DATE_SUB

'DATE_ADD'函数和'DATE_SUB'函数可以在日期上加上或减去指定的时间间隔,其用法如下:

SELECT DATE_ADD('2021-01-01', INTERVAL 1 MONTH);
SELECT DATE_SUB('2021-06-30', INTERVAL 1 YEAR);

第一条语句可以将2021年1月1日加上1个月,得到2月1日;第二条语句可以将2021年6月30日减去1年,得到2020年6月30日。

3、DATE_FORMAT

'DATE_FORMAT'函数可以将日期格式化为指定的格式,其用法如下:

SELECT DATE_FORMAT('2021-06-30', '%Y年%m月%d日');

这条语句可以将2021年6月30日格式化为'2021年06月30日'的形式。

四、总结

以上就是MySQL日期查询条件的详细介绍,涵盖了基本查询、BETWEEN、IN、DATEDIFF、DATE_ADD、DATE_SUB和DATE_FORMAT等方面。开发人员应根据项目需求选择合适的日期类型和查询方式,并灵活使用日期函数来满足不同需求。