MySQL是一个流行的、易于使用的数据库管理系统,它具有许多功能和灵活性,适合广泛的使用情况。其中一个特点是MySQL日期数据类型,它被用来生成和存储日期值。
在本指南中,我们将引导你了解MySQL日期数据类型,并向你展示如何从一个日期范围内进行过滤。
基础知识
MySQL日期是一种数据类型,它以YYY-MM-DD的形式存储日期值。日期类型使用3个字节来存储日期记录。MySQL的日期类型范围从1000-01-0到9999-12-21。
MySQL打包了很多用于生成和操作日期值的函数。
让我们举一个简单的例子来说明如何在MySQL中存储日期值。考虑下面的查询。
CREATE DATABASE IF NOT EXISTS date_db
USE date_db;
CREATE TABLE date_records(
id INT AUTO_INCREMENT PRIMARY KEY,
timetable DATE NOT NULL
);
INSERT INTO date_records(timetable)
VALUES('2021-06-06'),
('2020-01-20'),
('2030-03-03');
我们现在可以从表中选择值,如:
select * from date_records;
+----+------------+
| id | timetable |
+----+------------+
| 1 | 2021-06-06 |
| 2 | 2020-01-20 |
| 3 | 2030-03-03 |
+----+------------+
3 rows in set (0.00 sec)
你可以使用MySQL函数来增加更多的日期值到表中。
如何过滤日期范围?
现在让我们进入正题。"如何在一个日期范围内进行过滤?"
MySQL很聪明,非常直观。你可以使用正常的比较运算符来过滤特定日期范围内的数据。
在付款表中,我们可以过滤特定时期内的付款日期。
例如,要过滤 "2005-05-25 11:30:37 "和 "2005-07-30 19:23:44 "之间的付款,我们可以使用下面的查询。
SELECT payment_id, customer_id, rental_id
FROM payment
WHERE payment_date BETWEEN '2005-05-25 11:30:37' AND '2005-07-30 19:23:44' LIMIT 10;
上面的例子应该返回数值在指定时间范围内的列。
另一个例子是过滤到一个特定日期的值。在这种情况下,我们可以使用小于或等于操作符,如。
SELECT payment_id, customer_id, rental_id
FROM payment
WHERE payment_date <= '2005-05-25 11:30:37' LIMIT 10;
在上面的例子中,查询返回 "2005-05-25 11:30:37 "及以下范围内的所有值。
总结
MySQL允许你使用比较运算符来过滤日期范围,就像你对其他类型如整数一样。