columnに、StartとEndがあった場合に、
その期間がどのぐらいあったのかを調べるSQLをメモメモ。
sql文
select (CASE
WHEN TIMESTAMPDIFF(MONTH,@op,@ed) = 0
THEN (case when DATEDIFF(@ed,@op) > 27 then '1ヶ月' else '1ヶ月未満' end )
WHEN TIMESTAMPDIFF(MONTH,@op,@ed) >= 1
THEN concat(TIMESTAMPDIFF(MONTH,@op,@ed) + 1 , 'ヶ月')
ELSE '不正な日数を検出' end ) as '期間'
テストのために、変数で定義してありますが、
op には 開始日 en には 終了日を入れると該当の期間を取得できまする。