如何将年份与月份合并为格式为YYYYMM的单列?
合并年份与月份为YYYYMM格式的实现方法
嘿,这个需求太常见啦!我给你整理了几种主流工具下的解决方案,你挑自己在用的就行:
Excel/Google Sheets 解法
最直观的是用TEXT函数把月份补上前导零,再和年份拼接。假设年份在A列,月份在B列,在C2单元格输入:
=A2&TEXT(B2,"00")
下拉填充就能得到所有行的YYYYMM格式结果啦。
- 原理:
TEXT(B2,"00")会把单个数字的月份(比如7)转换成07,两位数字的月份(比如10)保持不变,再和年份直接拼接成字符串。 - 要是你的Excel版本不支持
TEXT函数(很少见),可以用RIGHT函数替代:=A2&RIGHT("00"&B2,2)
Python Pandas 解法
假设你的数据存在DataFramedf中,包含Year(整数型)和Month(整数型)列,一行代码就能搞定:
df['YYYYMM'] = df['Year'].astype(str) + df['Month'].astype(str).str.zfill(2)
- 步骤拆解:
- 把
Year列转为字符串类型; - 把
Month列转为字符串后,用str.zfill(2)给单个数字的月份补前导零; - 直接拼接两列得到
YYYYMM格式的新列。
- 把
SQL 解法
不同数据库的函数略有差异,我给你列几个常用的:
MySQL/MariaDB
SELECT CONCAT(Year, LPAD(Month, 2, '0')) AS YYYYMM FROM your_table;
LPAD(Month, 2, '0')的作用是把月份字段补成两位,不足的地方用0填充。
SQL Server
SELECT CAST(Year AS VARCHAR) + RIGHT('00' + CAST(Month AS VARCHAR), 2) AS YYYYMM FROM your_table;
- 先把月份转为字符串,和
00拼接后取最后两位,保证是两位格式。
PostgreSQL
用日期函数更优雅:
SELECT TO_CHAR(MAKE_DATE(Year, Month, 1), 'YYYYMM') AS YYYYMM FROM your_table;
MAKE_DATE先把年、月、日(这里随便选1号)拼成日期,再用TO_CHAR格式化为YYYYMM字符串。
要是你用的是其他工具(比如R、Power Query之类的),随时说,我再给你适配解法~
内容的提问来源于stack exchange,提问作者Meettu
相关产品推荐
相关产品推荐

