mysql - 如何在MYSQL中选择两个月份名称之间的记录

标签 mysql sql

我对 MYSQL 非常陌生,所以我写了这样的东西。

modified_date 是月份,例如:2017-03-24 13:38:11

select * from TableName  
where  monthname(modified_date) between  monthname(a.modified_date)= "March" 
and monthname(modified_date)="June" ;

对于上述查询,我​​收到错误(请引用图片) enter image description here .

最佳答案

这里的一个简单解决方法是使用数字 MONTH 函数:

SELECT *
FROM TableName  
WHERE MONTH(modified_date) BETWEEN 3 AND 6;

但实际上您可能还想限制年份,在这种情况下您可以使用:

SELECT *
FROM TableName  
WHERE
    MONTH(modified_date) BETWEEN 3 AND 6 AND
    YEAR(modified_date) IN (2017, ...);

我个人不喜欢使用MONTHYEAR,因为它将日期逻辑分割到多个位置。如果您只想以 2017 年为目标,还有另一种选择是仅使用日期文字:

SELECT *
FROM TableName  
WHERE
    modified_date >= '2017-03-01' AND modified_date < '2017-07-01';

关于mysql - 如何在MYSQL中选择两个月份名称之间的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46926764/

相关文章:

php - 连接到服务器时为 "parse error, expecting , or ;"

SQL 表日期时间列格式

c# - 使用 LINQ 选择最频繁的值

mysql将列值约束为预设值

mysql - 从 MySQL 选择表名作为文件发送到 HDFS

mysql - 无法在 MySql Workbench 中连接 Google Cloud SQL

mysql - 在 ./folder1/friends-mysql.cgi 第 16 行的字符串 eq 中使用未初始化值 $ENV {"REQUEST_METHOD"}

MySQL:引用 WHERE 中的 SELECT 子查询别名

sql - SQL Server 中两个计数的总和

Mysql查询无法解决