求助:获取上月(2022年12月)相对本月(2023年1月)的动态表达式
获取上月的动态表达式
以下是不同常用工具中,能动态计算当前(或指定)年月对应上月的表达式,自动处理跨年情况(比如2023年1月的上月为2022年12月):
Excel/Google Sheets
- 动态获取当前日期的上月(返回日期格式):
=EDATE(TODAY(), -1) - 动态获取当前日期的上月并格式化为「yyyy年mm月」:
=TEXT(EDATE(TODAY(), -1), "yyyy年mm月") - 指定特定年月(如2023年1月)计算上月:
=TEXT(EDATE(DATE(2023,1,1), -1), "yyyy年mm月")
Python
借助datetime和relativedelta模块处理跨年月计算:
from datetime import datetime from dateutil.relativedelta import relativedelta # 方式1:基于当前系统时间计算上月 current_time = datetime.now() last_month = current_time - relativedelta(months=1) print(last_month.strftime("%Y年%m月")) # 输出示例:2022年12月 # 方式2:指定特定年月(如2023年1月)计算上月 specified_date = datetime(2023, 1, 1) last_month_specified = specified_date - relativedelta(months=1) print(last_month_specified.strftime("%Y年%m月")) # 输出:2022年12月
SQL(主流数据库实现)
- MySQL/MariaDB:
动态获取当前日期的上月并格式化:SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH), '%Y年%m月'); - SQL Server:
SELECT FORMAT(DATEADD(MONTH, -1, GETDATE()), 'yyyy年MM月'); - Oracle:
SELECT TO_CHAR(ADD_MONTHS(SYSDATE, -1), 'yyyy"年"mm"月"') FROM DUAL;
内容的提问来源于stack exchange,提问作者LoKi_Asterix
相关产品推荐
相关产品推荐

