【问题标题】:select columns between month and year选择月份和年份之间的列
【发布时间】:2014-01-09 10:10:50
【问题描述】:

我有带列的表格:

id  month   year
1   10  2011
2   1   2012
3   4   2011
4   3   2012

我想要选择 (month=10 and year=2011) 和 (month=1 and year=2012) 的 ID,这可能吗?

【问题讨论】:

  • (月=10 和年=2011)和(月=1 和年=2012)?这会给你一个空的解决方案。你是说还是?
  • 我认为你需要 (month = 10 AND year = 2011) OR (month = 1 AND year = 2012)
  • 你是说你需要 from 2011 年第 10 个月 2012 年第 1 个月之间的所有 ID?
  • 是的,我需要从 2011 年第 10 个月到 2012 年第 1 个月之间的所有 ID
  • 这是对正确理解您的问题至关重要的说明,因此请编辑您的问题而不是发表评论。另外,这个问题has already been asked,可能只是针对您正在使用的 SQL 产品(顺便说一下,您也没有指定)。

标签: sql


【解决方案1】:

这是一个基本的 SQL SELECT:

SELECT id FROM myTable WHERE (month = 10 AND year = 2011) OR (month = 1 AND year = 2012);

【讨论】:

  • 来吧...这真的很容易。他应该自己解决这个问题。
  • 我知道。这就是我想跳窗的原因。
  • 我写错了,我想要月份 > 10 年的 ids>2011 和月份
  • 我认为您将布尔 AND 与英语 AND 混淆了。如果你想要两组不同的东西,那就是布尔 OR。
  • 对不起。但是一个月怎么可能同时> 2011和
【解决方案2】:

要搜索任意两个日期之间的行,最简单的解决方案可能是将月份和年份组合成一个数字,然后使用数字比较:

SELECT id
FROM myTable
WHERE year*100 + month BETWEEN 201110 AND 201201

这个解决方案的一个缺点是它不能利用索引,所以它在非常大的表上会很慢。

【讨论】:

    猜你喜欢
    • 2011-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多