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

日時型(DateTime)から 年 月 日 などを個別に取得するには、 YEAR()関数、MONTH()関数、DAY()関数、または DATEPART()関数 を使用します。

年・月・日を数値型で取得

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

時 分 秒 ミリ秒 マイクロ秒 ナノ秒 を取得

時刻部分を取得するには、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

検証環境

関連ページ