首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >列出一个月/一年内正在进行的所有锦标赛

列出一个月/一年内正在进行的所有锦标赛
EN

Stack Overflow用户
提问于 2014-12-06 06:54:09
回答 2查看 45关注 0票数 1

我正在尝试解决这个select语句。我的问题是列出一个月和一年内正在进行的所有锦标赛。

举个例子,我想列出

2005年3月所有正在进行的锦标赛。

我有以下专栏:

表:锦标赛(id_champ,name,startDate,endDate)

如何列出2005年3月进行中的所有锦标赛?

我试着这样做:

代码语言:javascript
运行
复制
SELECT * from championships 
where (month(startDate) <= 3 
and year(startDate)<=2005) 
and (month(startDate)<=3 and year(endDate)<=2005

在座的任何人都知道解决它的正确方法或最好的方法?

EN

回答 2

Stack Overflow用户

发布于 2014-12-06 07:04:46

要在2005年3月捕获任何活动:

代码语言:javascript
运行
复制
select
*
from
championships
where
year(enddate) = 2005
and 3 between month(startdate) and month(enddate).
票数 2
EN

Stack Overflow用户

发布于 2014-12-06 07:07:20

代码语言:javascript
运行
复制
Select *
From championships
where (startdate < `2005/4/1`) AND (enddate > '2005/2/28')

这将查找在2005年4月1日之前开始并在2005年2月28日之后的任何时间结束的所有冠军。

使用dateadd实际上是最好的,用来处理闰日之类的事情。因此,请考虑:

代码语言:javascript
运行
复制
Select *
From championships
where (startdate < dateadd(1, mm, `2005/3/1`)) AND (enddate > dateadd(-1, dd, '2005/3/1' ) )

现在,您不必让代码计算开始日期项的月份的最后一天,也不必计算结束日期的月份的最后一天。

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

https://stackoverflow.com/questions/27325996

复制
相关文章

相似问题

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