日時型(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
検証環境
- Microsoft SQL Server Developer プラットフォーム:NT INTEL X86 バージョン:12.0.6118.4
- Microsoft SQL Server Management Studio v17.6(14.0.17230.0)