SQLServerで日付型の値から日時の要素を取り出すには、
DATEPART関数、DATENAME関数を使用します。
日時の要素を取り出す
日時の要素を取り出すには以下の関数を使用します。
関数 | 説明 | 戻り値 |
---|---|---|
DATENAME(datepart, date) | 指定された要素(datepart)の値を文字列で返す | nvarchar |
DATEPART(datepart, date) | 指定された要素(datepart)の値を数値で返す | int |
datepartには、year, month, day, hour, minute, second などが指定できます
詳しくは以下公式ページをご覧ください。
⇒ DATEPART (Transact-SQL) ※Microsoft公式ページ
年、月、日 に関しては以下関数が用意されています。
関数 | 説明 | 戻り値 |
---|---|---|
DAY(date) | 指定されたdate値の日を数値で返す | int |
MONTH(date) | 指定されたdate値の月を数値で返す | int |
YEAR(date) | 指定されたdate値の年を数値で返す | int |
時間、分、秒を取得したい場合は、DATENAMEまたはDATEPARTをご使用ください。
サンプル
例)日付型の値から日時の要素を取得するサンプル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
-- datetime型値から日付を文字列で取得する SELECT DATEPART(day, CONVERT(datetime, '2020-12-31 23:59:59.123')) ⇒'31' -- datetime型値から日付を数値で取得する SELECT DATEPART(day, CONVERT(datetime, '2020-12-31 23:59:59.123')) ⇒31 -- datetime型値から年を数値で取得する SELECT YEAR(CONVERT(datetime, '2020-12-31 23:59:59.123')) ⇒2020 -- datetime型値から月を数値で取得する SELECT MONTH(CONVERT(datetime, '2020-12-31 23:59:59.123')) ⇒12 -- datetime型値から日を数値で取得する SELECT DAY(CONVERT(datetime, '2020-12-31 23:59:59.123')) ⇒31 |