SQL Server - 日時型(DateTime)から、年・月・日・時・分・秒を数値で取り出す

YEAR()関数、MONTH()関数、DAY()関数、または DATEPART()関数 を使用します。

YEAR()関数、MONTH()関数、DAY()関数の使い方

各関数 に日時型の値を渡すと、年・月・日を数値型で返します。
SELECT YEAR ('2020/1/23'); --結果 = 2020 (年)
SELECT MONTH('2020/1/23'); --結果 = 1    (月)
SELECT DAY  ('2020/1/23'); --結果 = 23   (日)

DATEPART()関数の使い方

DATEPART()関数を使用すると、時刻も取得できます。
SELECT DATEPART(year       , '2020/1/23 4:56:12.345'); --結果 = 2020      (年)
SELECT DATEPART(month      , '2020/1/23 4:56:12.345'); --結果 = 1         (月)
SELECT DATEPART(day        , '2020/1/23 4:56:12.345'); --結果 = 23        (日)
SELECT DATEPART(hour       , '2020/1/23 4:56:12.345'); --結果 = 4         (時)
SELECT DATEPART(minute     , '2020/1/23 4:56:12.345'); --結果 = 56        (分)
SELECT DATEPART(second     , '2020/1/23 4:56:12.345'); --結果 = 12        (秒)
SELECT DATEPART(millisecond, '2020/1/23 4:56:12.345'); --結果 = 345       (ミリ秒)
SELECT DATEPART(microsecond, '2020/1/23 4:56:12.345'); --結果 = 345000    (マイクロ秒)
SELECT DATEPART(nanosecond , '2020/1/23 4:56:12.345'); --結果 = 345000000 (ナノ秒)

NULLを渡すと?

何れの関数も、NULLを返します。
SELECT YEAR (NULL);          --結果 = NULL
SELECT MONTH(NULL);          --結果 = NULL
SELECT DAY  (NULL);          --結果 = NULL
SELECT DATEPART(year, NULL); --結果 = NULL

検証環境

関連ページ