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

如何调整MySQL查询以获取目标月份区间的前后行数据

问题场景

期望输出

TABLE_NAMEMONTH
vbSuccessfulCDR_5982019-02
vbSuccessfulCDR_5992019-03
vbSuccessfulCDR_6002019-04
vbSuccessfulCDR_6012019-05
vbSuccessfulCDR_6022019-06

当前查询语句

SELECT TABLE_NAME,
       SUBSTRING(TIMESTAMPADD(MONTH,
                    CAST(SUBSTRING_INDEX(TABLE_NAME, '_', -1) AS UNSIGNED) - 595,
                    '2018-11-01'),1, 7) AS MONTH
                        
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_NAME LIKE 'vbSuccessfulCDR_%'
AND SUBSTRING(TIMESTAMPADD(MONTH,
                    CAST(SUBSTRING_INDEX(TABLE_NAME, '_', -1) AS UNSIGNED) - 595,
                    '2018-11-01'),1, 7) BETWEEN '2019-03' AND '2019-05';

当前返回结果

TABLE_NAMEMONTH
vbSuccessfulCDR_5992019-03
vbSuccessfulCDR_6002019-04
vbSuccessfulCDR_6012019-05
调整方案

可以通过以下两种方式修改查询,获取目标的前后行数据:

方式一:扩大日期范围

直接将BETWEEN的日期范围调整为'2019-02' AND '2019-06',覆盖期望的月份区间:

SELECT TABLE_NAME,
       SUBSTRING(TIMESTAMPADD(MONTH,
                    CAST(SUBSTRING_INDEX(TABLE_NAME, '_', -1) AS UNSIGNED) - 595,
                    '2018-11-01'),1, 7) AS MONTH
                        
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_NAME LIKE 'vbSuccessfulCDR_%'
AND SUBSTRING(TIMESTAMPADD(MONTH,
                    CAST(SUBSTRING_INDEX(TABLE_NAME, '_', -1) AS UNSIGNED) - 595,
                    '2018-11-01'),1, 7) BETWEEN '2019-02' AND '2019-06';

方式二:直接筛选表名后缀数字

由于表名的后缀数字和月份存在固定对应关系(598对应2019-02,602对应2019-06),可以直接基于表名的数字部分筛选,避免重复计算日期,效率更高:

SELECT TABLE_NAME,
       SUBSTRING(TIMESTAMPADD(MONTH,
                    CAST(SUBSTRING_INDEX(TABLE_NAME, '_', -1) AS UNSIGNED) - 595,
                    '2018-11-01'),1, 7) AS MONTH
                        
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_NAME LIKE 'vbSuccessfulCDR_%'
AND CAST(SUBSTRING_INDEX(TABLE_NAME, '_', -1) AS UNSIGNED) BETWEEN 598 AND 602;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 01:39:19