【问题标题】:mysql return rows matching year monthmysql返回匹配年份月份的行
【发布时间】:2009-09-14 16:55:04
【问题描述】:

我将如何进行查询以返回包含查询时当前年份和月份日期的所有行的结果。

每行的时间戳格式如下:yyyy-mm-dd

我知道它可能与日期函数有关,并且我必须以某种方式设置一个特殊参数以使其像这样吐出:yyyy-mm-%%。

将日期设置为通配符可以解决问题,但我似乎无法弄清楚该怎么做。

这里是 mysql 中日期时间函数的快速参考链接:

http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html

谢谢

【问题讨论】:

    标签: sql mysql


    【解决方案1】:

    我认为 EXTRACT 是您正在寻找的功能:

    SELECT * FROM table
    WHERE EXTRACT(YEAR_MONTH FROM timestamp_field) = EXTRACT(YEAR_MONTH FROM NOW())
    

    【讨论】:

    • 啊,你读懂了我的想法。这正是我所需要的!谢谢埃里克。
    【解决方案2】:

    您可以使用函数提取年份和月份,但无法使用索引。

    如果您想要可扩展的性能,您需要这样做:

    SELECT *
      FROM myTable
     WHERE some_date_column BETWEEN '2009-01-01' AND '2009-01-31'
    

    【讨论】:

    • 对此+1 - 我提供的解决方案解决了问题,但如果您有大量数据,可能无法很好地扩展。
    • 这个答案仍然有帮助!
    【解决方案3】:
    select * from someTable where year(myDt) = 2009 and month(myDt) = 9 and day(myDt) = 12
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多