首页 文章

返回当前年份的所有mySQL记录

提问于
浏览
15

在mySQL中,我想返回当前年份内的 start_date 记录的计数(如2012年,不在最近一年的时间段内)和(作为单独的查询)从中记录的计数前一年(2011年的情况就像现在一样) .

我的开始日期如下: 2012-12-02 . 我正在使用PHP .

关于如何形成这些查询的帮助将非常感激 .

3 回答

  • 8
    SELECT COUNT(*)
     FROM TABLE1
     WHERE YEAR(START_DATE) = YEAR(CURDATE());
    
  • 1

    您可能希望使用YEAR函数从日期获取YEAR并使用相同的值 .

    SELECT COUNT(*)
     FROM TABLE1
     WHERE YEAR(START_DATE) = 2012;
    

    与上一年分开的查询:

    SELECT COUNT(*)
     FROM TABLE1
     WHERE YEAR(START_DATE) = 2011;
    

    要明智地计算年份:

    SELECT COUNT(b.YEAR), b.YEAR
     FROM TABLE1 AS a JOIN 
        (SELECT DISTINCT YEAR(START_DATE) AS YEAR from TABLE1) AS b
        ON YEAR(START_DATE) = b.YEAR
     GROUP BY b.YEAR;
    
  • 33

    两个建议:

    您可以使用日期过滤数据:

    select count(*) from tbl where start_date >= '2012-01-01'
    

    要么

    select count(*) from tbl where start_date between '2012-01-01' and '2012-12-31'
    

    此外,您可以使用 year() 函数过滤数据:

    select count(*) from tbl where year(start_date) = 2012
    

    希望这对你有所帮助


    如果您使用的是PHP(或任何其他高级编程语言),则可以在运行时构建查询字符串以满足您的需求(例如,过滤不同年份的记录) .

    要在2012年之前显示 start_date 的记录数,只需更改 where 条件:

    select... where year(start_date) < 2012
    

    要么

    select... where start_date < '2012-01-01'
    

相关问题