SQLServerでSQLを使ってDatetime型のフィールドから「年」「月」「日」の部分をそれぞれ抽出する方法を紹介してみようと思います。
Datetime型のフィールドから「年」「月」「日」を抽出する方法
「年」部分を取得する方法
YEAR()関数を使えばOKです。
例えば、”T_Data”というテーブルに次のようなデータが登録されている場合に、
次のようなSQLを実行すると
SELECT
DataID
,YEAR([datetime])
FROM T_Data
結果は次のようになります。
「月」部分を取得する方法
MONTH()関数を使えばOKです。
例えば、”T_Data”というテーブルに次のようなデータが登録されている場合に、
次のようなSQLを実行すると
Select
DataID
,MONTH([datetime])
FROM T_Data
結果は次のようになります。
「日」部分を取得する方法
DAY()関数を使えばOKです。
例えば、”T_Data”というテーブルに次のようなデータが登録されている場合に、
次のようなSQLを実行すると
Select
DataID
,DAY([datetime])
FROM T_Data
結果は次のようになります。
YEAR()とMONTH()を用いた例
上記で紹介したYEAR()やMONTH()を使うと、例えばDatetime型のフィールドから「年」「月」の部分をピックアップし、その組み合わせを一意で表示したりすることができます。
例えば、”T_Data”というテーブルに次のようなデータが登録されている場合に、
次のようなSQLを実行すると
SELECT
CONVERT(varchar(MAX),PICK.[YEAR]) + '年' + CONVERT(varchar(MAX),PICK.[MONTH]) + '月' As YearMonth
FROM
(
SELECT
YEAR([datetime]) As [YEAR]
,MONTH([datetime]) As [MONTH]
FROM T_Data
GROUP BY YEAR([datetime]),MONTH([datetime])
) PICK
ORDER BY PICK.[YEAR] DESC, PICK.[MONTH] DESC
結果は次のようになります。
以上です。
参考になれば幸いです。