smalldatetime (Transact-SQL)smalldatetime (Transact-SQL)

適用対象: ○SQL Server ○Azure SQL Database ○Azure SQL Data Warehouse ○Parallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

日付を時刻と組み合わせて定義します。Defines a date that is combined with a time of day. 時間は 24 時制とし、秒は常にゼロ (: 00) にし、秒の小数部は使用しません。The time is based on a 24-hour day, with seconds always zero (:00) and without fractional seconds.

注意

使用して、 time, 、date, 、datetime2datetimeoffset 新しい作業のデータ型。Use the time, date, datetime2 and datetimeoffset data types for new work. これらの型は、SQL 標準に準拠しています。These types align with the SQL Standard. これらの型は、移植性がより高いです。They are more portable. timedatetime2datetimeoffset は秒の有効桁数が増えています。time, datetime2 and datetimeoffset provide more seconds precision. datetimeoffset グローバルに配置されるアプリケーション向けにタイム ゾーンのサポートを提供します。datetimeoffset provides time zone support for globally deployed applications.

smalldatetime の説明smalldatetime description

構文Syntax smalldatetimesmalldatetime
使用方法Usage DECLARE @MySmalldatetime smalldatetimeDECLARE @MySmalldatetime smalldatetime

CREATE TABLE Table1 ( Column1 smalldatetime )CREATE TABLE Table1 ( Column1 smalldatetime )
既定の文字列リテラル形式Default string literal formats

(下位クライアントに使用)(used for down-level client)
適用なしNot applicable
日付範囲Date range 1900-01-01 から 2079-06-061900-01-01 through 2079-06-06

1900 年 1 月 1 日から 2079 年 6 月 6 日January 1, 1900, through June 6, 2079
時間の範囲Time range 00:00:00 から 23:59:5900:00:00 through 23:59:59

2007-05-09 23:59:59 は次のように丸められます。2007-05-09 23:59:59 will round to

2007-05-10 00:00:002007-05-10 00:00:00
要素範囲Element ranges YYYY は、1900 から 2079 の年を表す 4 桁の数字です。YYYY is four digits, ranging from 1900, to 2079, that represent a year.

MM は、指定された年の 01 ~ 12 の月を表す 2 桁の数字です。MM is two digits, ranging from 01 to 12, that represent a month in the specified year.

DD は、指定された月の (月に応じて) 01 ~ 31 の日を表す 2 桁の数字です。DD is two digits, ranging from 01 to 31 depending on the month, that represent a day of the specified month.

hh は、00 ~ 23 の時を表す 2 桁の数字です。hh is two digits, ranging from 00 to 23, that represent the hour.

mm は、分を表す 00 から 59 の 2 桁の数字です。mm is two digits, ranging from 00 to 59, that represent the minute.

ss は、秒を表す 00 から 59 の 2 桁の数字です。ss is two digits, ranging from 00 to 59, that represent the second. 29.998 秒以下の値は、最も近い分に切り捨てられます。Values that are 29.998 seconds or less are rounded down to the nearest minute. 29.999 秒以上の値は、最も近い分に切り上げられます。Values of 29.999 seconds or more are rounded up to the nearest minute.
文字長Character length 最大 19 文字19 positions maximum
ストレージ サイズStorage size 4 バイト、固定。4 bytes, fixed.
精度Accuracy 1 分One minute
既定値Default value 1900-01-01 00:00:001900-01-01 00:00:00
カレンダーCalendar グレゴリオ暦Gregorian

(完全な年の範囲は含まれません。)(Doesn't include the complete range of years.)
ユーザー定義の 1 秒未満の秒の有効桁数User-defined fractional second precision いいえNo
タイム ゾーン オフセットへの対応と保持Time zone offset aware and preservation いいえNo
夏時間への対応Daylight saving aware いいえNo

ANSI および ISO 8601 への準拠ANSI and ISO 8601 Compliance

smalldatetime は ANSI または ISO 8601 に準拠していません。smalldatetime isn't ANSI or ISO 8601 compliant.

日付と時刻のデータ型の変換Converting date and time data

日付と時刻のデータ型に変換する場合、SQL ServerSQL Server で日付または時刻と認識できない値はすべて拒否されます。When you convert to date and time data types, SQL ServerSQL Server rejects all values it can't recognize as dates or times. CAST 関数および CONVERT 関数で日付と時刻のデータを使用する方法については、「CAST および CONVERT (Transact-SQL)」をご覧ください。For information about using the CAST and CONVERT functions with date and time data, see CAST and CONVERT (Transact-SQL).

smalldatetime から他の日付/時刻データ型への変換Converting smalldatetime to other date and time types

ここでは、smalldatetime データ型が他の日付/時刻データ型に変換される場合の処理について説明します。This section describes what occurs when a smalldatetime data type is converted to other date and time data types.

date への変換の場合は、年、月、および日がコピーされます。For a conversion to date, the year, month, and day are copied. 次のコードは、smalldatetime 値を date 値に変換した結果を示しています。The following code shows the results of converting a smalldatetime value to a date value.

DECLARE @smalldatetime smalldatetime = '1955-12-13 12:43:10';  
DECLARE @date date = @smalldatetime  
  
SELECT @smalldatetime AS '@smalldatetime', @date AS 'date';  
  
--Result  
--@smalldatetime          date  
------------------------- ----------  
--1955-12-13 12:43:00     1955-12-13  
--  
--(1 row(s) affected)  

time(n) への変換では、時、分、および秒がコピーされます。When the conversion is to time(n), the hours, minutes, and seconds are copied. 秒未満の時間は 0 に設定されます。The fractional seconds are set to 0. 次のコードは、smalldatetime 値を time(4) 値に変換した結果を示しています。The following code shows the results of converting a smalldatetime value to a time(4) value.

DECLARE @smalldatetime smalldatetime = '1955-12-13 12:43:10';  
DECLARE @time time(4) = @smalldatetime;  
  
SELECT @smalldatetime AS '@smalldatetime', @time AS 'time';  
  
--Result  
--@smalldatetime          time  
------------------------- -------------  
--1955-12-13 12:43:00     12:43:00.0000  
--  
--(1 row(s) affected)  

datetime に変換する場合は、smalldatetime 値が datetime 値にコピーされます。When the conversion is to datetime, the smalldatetime value is copied to the datetime value. 秒未満の時間は 0 に設定されます。The fractional seconds are set to 0. 次のコードは、smalldatetime 値を datetime 値に変換した結果を示しています。The following code shows the results of converting a smalldatetime value to a datetime value.

DECLARE @smalldatetime smalldatetime = '1955-12-13 12:43:10';  
DECLARE @datetime datetime = @smalldatetime;  
  
SELECT @smalldatetime AS '@smalldatetime', @datetime AS 'datetime';  
  
--Result  
--@smalldatetime          datetime  
------------------------- -----------------------  
--1955-12-13 12:43:00     1955-12-13 12:43:00.000  
--  
--(1 row(s) affected)  

datetimeoffset(n) に変換する場合は、smalldatetime 値が datetimeoffset(n) 値にコピーされます。For a conversion to datetimeoffset(n), the smalldatetime value is copied to the datetimeoffset(n) value. 秒の小数部は 0 に設定され、タイム ゾーン オフセットは + 00:0 に設定されます。The fractional seconds are set to 0, and the time zone offset is set to +00:0. 次のコードは、smalldatetime 値を datetimeoffset(4) 値に変換した結果を示しています。The following code shows the results of converting a smalldatetime value to a datetimeoffset(4) value.

DECLARE @smalldatetime smalldatetime = '1955-12-13 12:43:10';  
DECLARE @datetimeoffset datetimeoffset(4) = @smalldatetime;  
  
SELECT @smalldatetime AS '@smalldatetime', @datetimeoffset AS 'datetimeoffset(4)';  
  
--Result  
--@smalldatetime          datetimeoffset(4)  
------------------------- ------------------------------  
--1955-12-13 12:43:00     1955-12-13 12:43:00.0000 +00:0  
--  
--(1 row(s) affected)  

datetime2(n) に変換する場合は、smalldatetime 値が datetime2(n) 値にコピーされます。For the conversion to datetime2(n), the smalldatetime value is copied to the datetime2(n) value. 秒未満の時間は 0 に設定されます。The fractional seconds are set to 0. 次のコードは、smalldatetime 値を datetime2(4) 値に変換した結果を示しています。The following code shows the results of converting a smalldatetime value to a datetime2(4) value.

DECLARE @smalldatetime smalldatetime = '1955-12-13 12:43:10';  
DECLARE @datetime2 datetime2(4) = @smalldatetime;  
  
SELECT @smalldatetime AS '@smalldatetime', @datetime2 AS ' datetime2(4)';  
  
--Result  
--@smalldatetime           datetime2(4)  
------------------------- ------------------------  
--1955-12-13 12:43:00     1955-12-13 12:43:00.0000  
--  
--(1 row(s) affected)  

使用例Examples

A.A. 秒を含む文字列リテラルを smalldatetime にキャストするCasting string literals with seconds to smalldatetime

次の例では、文字列リテラル内の秒の smalldatetime への変換を比較します。The following example compares the conversion of seconds in string literals to smalldatetime.

SELECT   
     CAST('2007-05-08 12:35:29'     AS smalldatetime)  
    ,CAST('2007-05-08 12:35:30'     AS smalldatetime)  
    ,CAST('2007-05-08 12:59:59.998' AS smalldatetime);  
入力Input [出力]Output
2007-05-08 12:35:292007-05-08 12:35:29 2007-05-08 12:35:002007-05-08 12:35:00
2007-05-08 12:35:302007-05-08 12:35:30 2007-05-08 12:36:002007-05-08 12:36:00
2007-05-08 12:59:59.9982007-05-08 12:59:59.998 2007-05-08 13:00:002007-05-08 13:00:00

B.B. date と time のデータ型を比較するComparing date and time data types

次の例では、文字列をそれぞれの date および time データ型にキャストした結果を比較します。The following example compares the results of casting a string to each date and time data type.

SELECT   
     CAST('2007-05-08 12:35:29. 1234567 +12:15' AS time(7)) AS 'time'   
    ,CAST('2007-05-08 12:35:29. 1234567 +12:15' AS date) AS 'date'   
    ,CAST('2007-05-08 12:35:29.123' AS smalldatetime) AS   
        'smalldatetime'   
    ,CAST('2007-05-08 12:35:29.123' AS datetime) AS 'datetime'   
    ,CAST('2007-05-08 12:35:29. 1234567 +12:15' AS datetime2(7)) AS   
        'datetime2'  
    ,CAST('2007-05-08 12:35:29.1234567 +12:15' AS datetimeoffset(7)) AS   
        'datetimeoffset';  
データ型Data type [出力]Output
timetime 12:35:29.12:35:29. 12345671234567
datedate 2007-05-082007-05-08
smalldatetimesmalldatetime 2007-05-08 12:35:002007-05-08 12:35:00
datetimedatetime 2007-05-08 12:35:29.1232007-05-08 12:35:29.123
datetime2datetime2 2007-05-08 12:35:29.2007-05-08 12:35:29. 12345671234567
datetimeoffsetdatetimeoffset 2007-05-08 12:35:29.1234567 +12:152007-05-08 12:35:29.1234567 +12:15

参照See also

CAST および CONVERT (Transact-SQL)CAST and CONVERT (Transact-SQL)