MONTHS_BETWEEN 関数 - Amazon Redshift

MONTHS_BETWEEN 関数

MONTHS_BETWEEN は、2 つの日付の間の月数を算出します。

1 番目の日付が 2 番目の日付より値の場合、結果は正になります。それ以外の場合、結果は負になります。

どちらかの引数が null の場合、結果は NULL になります。

構文

MONTHS_BETWEEN( date1, date2 )

引数

date1

データ型 DATE の列または DATE 型に暗黙的に評価される式。

date2

データ型 DATE の列または DATE 型に暗黙的に評価される式。

戻り型

FLOAT8

結果の整数部分は、日付の年の値と月の値の差分に基づいて決まります。結果の小数部分は、日付の曜日およびタイムスタンプの値から計算され、1 か月が 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