SQL Serverにて年度を条件にデータ抽出する方法

当ページのリンクには広告が含まれています。
SQLの文法
  • URLをコピーしました!

SQL ServerにてWHERE句で年度を条件指定する方法です。

目次

実装方法

例えば、売上データから今年度以降の売上だけを抽出したい場合など、WHERE条件句に現在年度の初めを指定する書き方です。

現在が4月より前(1~3月)の場合は、年度初めの日は【現在年ー1】年の4月1日です。

現在が4月以降(4月~12月)の場合は、年度初めの日は【現在年】の4月1日です。

これを条件指定するには、以下のように指定します。

(①現在年が4月より前 AND 売上日が【現在年ー1】年の4月1日以降)

OR

(②現在年が4月以降 AND 売上日が【現在年】の4月1日以降)

サンプルSQL文

SELECT
    ID,
    日付
FROM 売上データ
WHERE (month(GETDATE())>=4 AND 日付 >= CAST(CAST(Year(GETDATE()) as varchar) +'/04/01' as date))
OR
(month(GETDATE())<4 AND 日付 >= CAST(CAST(Year(GETDATE())-1 as varchar) +'/04/01' as date))

解説

使用する関数

MONTH([日付型の値])引数として指定された日付型の値から月を取り出して整数で返す関数です。
YEAR([日付型の値])引数として指定された日付型の値から年を取り出して整数で返す関数です。
CAST([変換前の値], [変換したい型])引数として指定された値を、指定された型に変換して返す関数です。
GETDATE()引数なしで利用します。今日の日付を日付型で返す関数です。

解説

条件句は、A OR Bで構成されています。

Aの部分が、今日の月が4以上で日付が今年の4月1日以上

Bの部分が、今日の月が4未満で日付が昨年の4月1日以上

となっています。

今年の4月1日、去年の4月1日を日付型として作成するために、CASTを使っています。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

目次