如何编写SQL查询获取所有数据并排除当前月份数据?
解决方案
固定排除指定月份
如果只是需要排除202503这个固定月份,直接用字符串不等于条件即可——因为你的YearMonth列是varchar类型,注意要给目标值加单引号:
SELECT YearMonth FROM your_table_name -- 替换成你的实际表名 WHERE YearMonth != '202503';
动态排除当前月份(更通用)
如果希望查询能自动适配当前月份,不用每次手动修改日期值,可以根据你使用的数据库类型,用内置函数生成当前月份的YYYYMM格式字符串,再进行比较:
MySQL/MariaDB
SELECT YearMonth FROM your_table_name WHERE YearMonth != DATE_FORMAT(CURDATE(), '%Y%m');
SQL Server
SELECT YearMonth FROM your_table_name WHERE YearMonth != FORMAT(GETDATE(), 'yyyyMM');
PostgreSQL
SELECT YearMonth FROM your_table_name WHERE YearMonth != TO_CHAR(CURRENT_DATE, 'YYYYMM');
注意事项
- 确保
YearMonth列的所有数据都是YYYYMM格式的6位字符串,否则动态生成的格式和列数据不匹配会导致过滤出错。 - 替换语句中的
your_table_name为你的实际表名。
内容的提问来源于stack exchange,提问作者Snigdha Sarisa
相关产品推荐
相关产品推荐

