MONTHS_BETWEEN 函數 - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

MONTHS_BETWEEN 函數

MONTHS_BETWEEN 可判斷兩個日期之間有幾個月。

如果第一個日期晚於第二個日期,結果為正值,否則結果為負值。

如果引數為 null,則結果為 NULL。

Syntax (語法)

MONTHS_BETWEEN ( date1, date2 )

引數

date1

任何判斷值為有效日期或時間戳記值的表達式,例如欄名。

date2

任何判斷值為有效日期或時間戳記值的表達式,例如欄名。

傳回類型

FLOAT8

結果的整個數字部分是基於日期的年份和月份值的差異。結果的小數部分是透過日期的天和時間戳記值計算而得,且一個月假設為 31 天。

如果 date1date2 都含有某個月份中的相同日期 (例如,1/15/14 和 2/15/14) 或某月的最後一天 (例如,8/31/14 和 9/30/14),則結果是根據日期之年份和月份值的整個數值,而不論時間戳記部分符合的情況 (若有)。

範例

下列範例會傳回 1/18/1969 和 3/18/1969 的月份。

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

下列範例傳回事件之第一個和最後一個顯示間的月份。

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