首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL从两列中选择daterange数据

MySQL从两列中选择daterange数据
EN

Stack Overflow用户
提问于 2013-08-31 14:04:51
回答 2查看 67关注 0票数 0

这是我的桌子:

ut_period

代码语言:javascript
复制
id | month | year | name 
1  | 9     | 2013 | dddd
2  | 2     | 2017 | eeee

我要选择2013-8年和2018-9年的女巫行。所以我写了这个查询,但没有成功:

代码语言:javascript
复制
SELECT * 
FROM `ut_period` p  
WHERE `p`.`status` = 4 
  AND `p`.`year` >= '2013' 
  AND `p`.`mont` >= '8'
  AND `p`.`year` <= '2018' 
  AND `p`.`month` <= '9' 

我该怎么做呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-31 14:09:16

我发现处理“年度月”最简单的方法是乘以--基本上,从某个日期起的月数:

代码语言:javascript
复制
select p.*
from ut_period p
where (p.year * 12 + p.month) between 2013*12 + 8  and 2018*12 + 9;

如果您愿意,还可以将这些转换为表单YYYYMM的数字,这使得输入范围的常量值变得更容易:

代码语言:javascript
复制
select p.*
from ut_period p
where (p.year * 100 + p.month) between 201308  and 201809;
票数 1
EN

Stack Overflow用户

发布于 2013-08-31 14:07:34

对月份和年份使用子句。

(这里的文件)

而且,您确实应该将日期、月份和年份放在一个列中--这就是为什么MySQL有与日期相关的字段类型。用日期字段类型替换日期、月份和年份,这样就可以更容易地比较日期。

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

https://stackoverflow.com/questions/18548985

复制
相关文章

相似问题

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