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

Hive中如何计算格式为202101的两个整数日期的月份差?

整数格式日期(如202101)的月份差计算方法

当日期是以202101这类整数形式存储时,要计算两个日期的月份差,核心是先把整数转成数据库能识别的日期类型,再用对应的月份计算函数。以下是主流数据库的实现方式:

Oracle

用TO_DATE函数把整数转成日期格式,再传入MONTHS_BETWEEN计算:

SELECT MONTHS_BETWEEN(TO_DATE(202209, 'YYYYMM'), TO_DATE(202107, 'YYYYMM')) AS month_diff FROM DUAL;

这个语句会返回14,正好是2022年9月到2021年7月的月份差。

MySQL

用STR_TO_DATE转换整数为日期,再用TIMESTAMPDIFF直接计算月份差:

SELECT TIMESTAMPDIFF(MONTH, STR_TO_DATE(202107, '%Y%m'), STR_TO_DATE(202209, '%Y%m')) AS month_diff;

结果同样是14。

SQL Server

先把整数转为字符串,补加01形成完整日期,再转成日期类型,最后用DATEDIFF计算:

SELECT DATEDIFF(MONTH, CAST(202107 AS VARCHAR(6)) + '01', CAST(202209 AS VARCHAR(6)) + '01') AS month_diff;

返回结果也是14。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 11:20:29