MONTHS_BETWEEN 函数 - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

MONTHS_BETWEEN 函数

MONTHS_BETWEEN 确定两个日期之间相隔的月数。

如果第一个日期晚于第二个日期,则结果为正;否则,结果为负数。

如果任一参数为 null,则结果为 NULL。

语法

MONTHS_BETWEEN( date1, date2 )

参数

date1

数据类型为 DATE 的列,或一个隐式计算结果为 DATE 类型的表达式。

date2

数据类型为 DATE 的列,或一个隐式计算结果为 DATE 类型的表达式。

返回类型

FLOAT8

结果的整数部分基于日期的年份和月份值之间的差值。结果的小数部分根据日期的日期和时间戳值计算,假定一个月为 31 天。

如果 date1date2 都包含一个月内的相同日期(例如,1/15/14 和 2/15/14)或该月的最后一天(例如 8/31/14 和 9/30/14),则结果是基于日期的年份和月份值的整数,无论时间戳部分是否匹配(如果存在)。

示例

以下示例返回 1969 年 1 月 18 日至 1969 年 3 月 18 日之间的月份。

select months_between('1969-01-18', '1969-03-18') as months; months ---------- -2

以下示例返回 1969 年 1 月 18 日至 1969 年 1 月 18 日之间的月数。

select months_between('1969-01-18', '1969-01-18') as months; months ---------- 0

以下示例返回事件的第一个和最后一个展示之间的月份。

select eventname, min(starttime) as first_show, max(starttime) as last_show, months_between(max(starttime),min(starttime)) as month_diff from event group by eventname order by eventname limit 5; eventname first_show last_show month_diff --------------------------------------------------------------------------- .38 Special 2008-01-21 19:30:00.0 2008-12-25 15:00:00.0 11.12 3 Doors Down 2008-01-03 15:00:00.0 2008-12-01 19:30:00.0 10.94 70s Soul Jam 2008-01-16 19:30:00.0 2008-12-07 14:00:00.0 10.7 A Bronx Tale 2008-01-21 19:00:00.0 2008-12-15 15:00:00.0 10.8 A Catered Affair 2008-01-08 19:30:00.0 2008-12-19 19:00:00.0 11.35