首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL选择两个日期之间的所有条目,不考虑年份

问MySQL选择两个日期之间的所有条目,不考虑年份
EN

Stack Overflow用户
提问于 2011-11-20 07:45:06
回答 3查看 1.7K关注 0票数 3

我需要在MySQL数据库中查找介于"YYYY-10-30“和"YYYY-12-11”之间的所有行。我不关心日期在哪一年,只是在这两个日期之间。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-20 07:49:30

代码语言:javascript
复制
SELECT *
FROM yourTable
WHERE (MONTH(yourDate) = 10 AND DAYOFMONTH(yourDate) >= 30)
   OR (MONTH(yourDate) = 11)
   OR (MONTH(yourDate) = 12 AND DAYOFMONTH(yourDate) <= 11)
票数 5
EN

Stack Overflow用户

发布于 2011-11-20 07:57:34

代码语言:javascript
复制
select * 
from table
where
concat(year(now()),right(date_field,6))
between 
concat(year(now()),'-10-30')
and
concat(year(now()),'-12-11')
票数 1
EN

Stack Overflow用户

发布于 2011-11-20 08:06:24

你能试试这个吗?

代码语言:javascript
复制
CREATE DEFINER=`root`@`localhost` PROCEDURE `GetByMonthAndDayRange`
(
    IN monthFrom INT
  , IN dayFrom INT
  , IN monthTo INT
  , IN dayTo INT
)
BEGIN

  -- For good coding practice, name your columns instead of using *
  SELECT *
  FROM tablename
  WHERE 
     (MONTH(datecolumnname) = monthFrom AND DAYOFMONTH(datecolumnname) >= dayFrom)
  OR (MONTH(datecolumnname) > monthFrom AND      MONTH(datecolumnname) <  monthTo)
  OR (MONTH(datecolumnname) = monthTo   AND DAYOFMONTH(datecolumnname) <= dayTo);

END

如果您使用存储过程(如果代码符合您的口味),您将能够更快地编写代码,只需提供参数(这种方式是动态的)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8198258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档