You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SQL查询中获取当前月份,实现自动填入无需每月手动修改

自动化填入当前月份的SQL实现方案

可以实现,直接使用你所用数据库的内置日期函数替换原语句中的[current month]占位符即可,不需要每月手动修改数值。以下是不同主流数据库的常用场景示例:

注:原语句中筛选字段名为year,如果该字段实际存储的是年份、年月组合等其他格式,调整对应日期函数的返回格式即可。

  • MySQL 场景
    若year字段存储数字格式的月份(如10代表10月):

    SELECT * 
    FROM table_1
    WHERE year = MONTH(CURRENT_DATE);
    

    若year字段存储YYYY-MM格式的年月字符串:

    SELECT * 
    FROM table_1
    WHERE year = DATE_FORMAT(CURRENT_DATE, '%Y-%m');
    
  • PostgreSQL 场景
    若year字段存储数字格式的月份:

    SELECT * 
    FROM table_1
    WHERE year = EXTRACT(MONTH FROM CURRENT_DATE)::INT;
    

    若year字段存储YYYY-MM格式的年月字符串:

    SELECT * 
    FROM table_1
    WHERE year = TO_CHAR(CURRENT_DATE, 'YYYY-MM');
    
  • SQL Server 场景
    若year字段存储数字格式的月份:

    SELECT * 
    FROM table_1
    WHERE year = MONTH(GETDATE());
    

    若year字段存储YYYY-MM格式的年月字符串:

    SELECT * 
    FROM table_1
    WHERE year = FORMAT(GETDATE(), 'yyyy-MM');
    
  • Oracle 场景
    若year字段存储数字格式的月份:

    SELECT * 
    FROM table_1
    WHERE year = EXTRACT(MONTH FROM SYSDATE);
    

    若year字段存储YYYY-MM格式的年月字符串:

    SELECT * 
    FROM table_1
    WHERE year = TO_CHAR(SYSDATE, 'YYYY-MM');
    

如果需要筛选上个月的数据,只需要对当前日期做偏移即可,比如MySQL场景下取上月月份可以写为MONTH(DATE_SUB(CURRENT_DATE, INTERVAL 1 MONTH)),其他数据库也有对应的日期偏移函数,按需调整即可。

内容的提问来源于stack exchange,提问作者Sayyam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 12:39:00