SQLServerで日付要素から日付型を生成するには、
標準で用意されている関数を使用します。
日付要素から日付型を生成する関数
日付要素から日付型を生成する関数には以下6種類あります。
用途に合わせてお選びください。
関数 | 戻り値 | 戻り値型 |
---|---|---|
DATEFROMPARTS ( year, month, day ) | 年、月、日からdate型を生成する | date |
DATETIME2FROMPARTS ( year, month, day, hour, minute, seconds, fractions, precision) | 年、月、日、時、分、秒、ミリ秒、精度からdatetime2型を生成する | datetime2 |
DATETIMEFROMPARTS ( year, month, day, hour, minute, seconds, milliseconds) | 年、月、日、時、分、秒、ミリ秒からdatetime型を生成する | datetime |
DATETIMEOFFSETFROMPARTS ( year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision) | 年、月、日、時、分、秒、ミリ秒、タイムゾーン(時間)、タイムゾーン(分)、精度からdatetimeoffset型を生成する | datetimeoffset |
SMALLDATETIMEFROMPARTS ( year, month, day, hour, minute ) | 年、月、日、時、分からsmalldatetime型を生成する | smalldatetime |
TIMEFROMPARTS ( hour, minute, seconds, fractions, precision ) | 時、分、秒、ミリ秒、精度などからtime型を生成する | time |
精度はミリ秒の精度です。6桁のミリ秒を扱いたい場合は6を指定します。
精度に指定した桁数よりも大きな桁数のミリ秒を指定した場合はエラーになります。
サンプル
例)日付要素から日付型を生成するサンプル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
select DATEFROMPARTS(2020, 12, 31) ⇒2020-12-31 select DATETIME2FROMPARTS(2020, 12, 31, 23, 59, 59, 123456, 6) ⇒2020-12-31 23:59:59.123456 select DATETIMEFROMPARTS(2020, 12, 31, 23, 59, 59, 123) ⇒2020-12-31 23:59:59.123 select DATETIMEOFFSETFROMPARTS(2020, 12, 31, 23, 59, 59, 123, 9, 0, 6) ⇒2020-12-31 23:59:59.000123 +09:00 select SMALLDATETIMEFROMPARTS(2020, 12, 31, 23, 59) ⇒2020-12-31 23:59:00 select TIMEFROMPARTS(23, 59, 59, 123, 6) ⇒23:59:59.000123 |