mysql - 如何在MySQL中选择一个范围内的日期?

标签 mysql sql database dml

我创建了下表:

create table example
(
        code           varchar(7),
        date           date,
CONSTRAINT pk_date PRIMARY KEY (code)
);

我插入了数据:

insert into example(code, date) 
values('001','2016/05/12');
insert into example(code, date) 
values('002','2016/04/11');
insert into example(code, date) 
values('003','2017/02/03');

问题是:如何选择从今天起五个月以前的日期?

最佳答案

您可以使用BETWEEN 来获取日期在以下范围内的所有数据:

[Five Months From Today, Today]

SELECT 
*
FROM 
example
WHERE `date` BETWEEN  DATE_SUB(DATE(NOW()),INTERVAL 5 MONTH) AND DATE(NOW());

以防万一您不熟悉 BETWEEN

SELECT 2 BETWEEN 1 AND 3';

结果: 1(表示 TRUE)

在 2 和 3 之间选择 1;

结果: 0(表示 FALSE)

警告:

虽然 2 介于 1 和 3 之间。但是下面将返回 0

在 3 和 1 之间选择 2;

结果: 0(假)

您应该在 AND 之前使用较小的值,在 AND 之后使用较高的值。

关于mysql - 如何在MySQL中选择一个范围内的日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36362710/

相关文章:

mysql - 将 1 转换为十进制在 MySQL 中返回 0.9999 而不是 1.0000

mysql - 如果结束时间值为 NULL,则将该值替换为相同 id 的下一个开始时间

mysql - 仅选择关联行均不具有特定值的顶级行

php - Doctrine 2 : How to select ArrayCollection using DQL

php - 存储过程在本地运行但不会在服务器上执行

sql - 检查将 nvl2 与多个分组依据一起使用

java - 导入数字的值为 123,45,但 123.45 使用 JAVA 存储在数据库中

mysql - 如何将两条 SQL 语句合并为一条语句?

php - PHP/mySQL中下一个/上一个函数的最佳解决方案

php - 获取所有数据并删除表的重复项