time (Transact-SQL)time (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

1 日の時刻を定義します。Defines a time of a day. 時刻は 24 時間形式で、タイム ゾーンは認識されません。The time is without time zone awareness and is based on a 24-hour clock.

注意

Informatica の情報は、Informatica コネクタを使っている PDW ユーザーのために提供されます。Informatica information is provided for PDW customers using the Informatica Connector.

time の説明time Description

プロパティProperty [値]Value
構文Syntax time [ (fractional second scale) ]time [ (fractional second scale) ]
使用方法Usage DECLARE @MyTime time(7)DECLARE @MyTime time(7)

CREATE TABLE Table1 ( Column1 time(7) )CREATE TABLE Table1 ( Column1 time(7) )
fractional seconds scalefractional seconds scale 秒の小数点以下の有効桁数を指定します。Specifies the number of digits for the fractional part of the seconds.

0 ~ 7 の整数を指定できます。This can be an integer from 0 to 7. Informatica の場合は、0 ~ 3 の整数を指定できます。For Informatica, this can be an integer from 0 to 3.

既定の有効桁数は 7 (100 ナノ秒) です。The default fractional scale is 7 (100ns).
既定の文字列リテラル形式Default string literal format

(下位クライアントに使用)(used for down-level client)
hh:mm:ss[.nnnnnnn] (Informatica の場合は nnn)hh:mm:ss[.nnnnnnn] for Informatica)

詳細については、「下位クライアントの下位互換性」セクションを参照してください。For more information, see the Backward Compatibility for Down-level Clients section.
範囲Range 00:00:00.0000000 ~ 23:59:59.9999999 (Informatica の場合は 00:00:00.000 ~ 23:59:59.999)00:00:00.0000000 through 23:59:59.9999999 (00:00:00.000 through 23:59:59.999 for Informatica)
要素範囲Element ranges hh は、0 ~ 23 の時を表す 2 桁の数字です。hh is two digits, ranging from 0 to 23, that represent the hour.

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

ss は、0 ~ 59 の秒を表す 2 桁の数字です。ss is two digits, ranging from 0 to 59, that represent the second.

n* は、秒の有効桁数を表す 0 ~ 7 桁の数字です (0 ~ 9999999)。n* is zero to seven digits, ranging from 0 to 9999999, that represent the fractional seconds. Informatica の場合は、n* は 0 ~ 3 桁の数字です (0 ~ 999)。For Informatica, n* is zero to three digits, ranging from 0 to 999.
文字長Character length 8 文字 (hh:mm:ss) 以上、16 文字 (hh:mm:ss.nnnnnnn) 以下。8 positions minimum (hh:mm:ss) to 16 maximum (hh:mm:ss.nnnnnnn). Informatica の場合は、最大 12 文字 (hh:mm:ss.nnn) です。For Informatica, the maximum is 12 (hh:mm:ss.nnn).
有効桁数、小数点以下桁数Precision, scale

(ユーザーは小数点以下桁数のみ指定)(user specifies scale only)
次の表を参照してください。See the table below.
ストレージ サイズStorage size 既定では 5 バイト固定 (秒部分の既定の有効桁数は 100ns) です。5 bytes, fixed, is the default with the default of 100ns fractional second precision. Informatica の場合は、既定では 4 バイト固定 (秒部分の既定の有効桁数は 1 ミリ秒) です。In Informatica, the default is 4 bytes, fixed, with the default of 1ms fractional second precision.
精度Accuracy 100 ナノ秒 (Informatica では 1 ミリ秒)100 nanoseconds (1 millisecond in Informatica)
既定値Default value 00:00:0000:00:00

この値は、date から datetime2 または datetimeoffset への暗黙的な変換で、付加的な時刻要素として使用されます。This value is used for the appended time part for implicit conversion from date to datetime2 or datetimeoffset.
ユーザー定義の 1 秒未満の秒の有効桁数User-defined fractional second precision はいYes
タイム ゾーン オフセットへの対応と保持Time zone offset aware and preservation いいえNo
夏時間への対応Daylight saving aware いいえNo
指定した小数点以下桁数Specified scale 結果 (有効桁数、小数点以下桁数)Result (precision, scale) 列長 (バイト)Column length (bytes) 1 秒未満のFractional

secondsseconds

有効桁数 (precision)precision
timetime (16,7) (Informatica では (12,3))(16,7) [(12,3) in Informatica] 5 (Informatica では 4)5 (4 in Informatica) 7 (Informatica では 3)7 (3 in Informatica)
time(0)time(0) (8,0)(8,0) 33 0-20-2
time(1)time(1) (10,1)(10,1) 33 0-20-2
time(2)time(2) (11,2)(11,2) 33 0-20-2
time(3)time(3) (12,3)(12,3) 44 3-43-4
time(4)time(4)

Informatica ではサポートされていません。Not supported in Informatica.
(13,4)(13,4) 44 3-43-4
time(5)time(5)

Informatica ではサポートされていません。Not supported in Informatica.
(14,5)(14,5) 55 5-75-7
time(6)time(6)

Informatica ではサポートされていません。Not supported in Informatica.
(15,6)(15,6) 55 5-75-7
time(7)time(7)

Informatica ではサポートされていません。Not supported in Informatica.
(16,7)(16,7) 55 5-75-7

time でサポートされる文字列リテラル形式Supported String Literal Formats for time

次の表は、time データ型に使用できる有効な文字列リテラル形式を示しています。The following table shows the valid string literal formats for the time data type.

SQL ServerSQL Server [説明]Description
hh:mm[:ss][:fractional seconds][AM][PM]hh:mm[:ss][:fractional seconds][AM][PM]

hh:mm[:ss][.fractional seconds][AM][PM]hh:mm[:ss][.fractional seconds][AM][PM]

hhAM[PM]hhAM[PM]

hh AM[PM]hh AM[PM]
AM を指定したかどうかに関係なく、時刻値 0 は午前 0 時を表します。The hour value of 0 represents the hour after midnight (AM), regardless of whether AM is specified. 時刻値が 0 のときに PM を指定することはできません。PM cannot be specified when the hour equals 0.

AM と PM のどちらも指定していない場合、01 から 11 までの時刻値は午前の時刻を表します。Hour values from 01 through 11 represent the hours before noon if neither AM nor PM is specified. これらの値は、AM を指定した場合も午前の時刻を表します。The values represent the hours before noon when AM is specified. PM を指定すると、午後の時刻を表します。The values represent hours after noon if PM is specified.

AM と PM のどちらも指定していない場合、時刻値 12 は正午を表します。The hour value 12 represents the hour that starts at noon if neither AM nor PM is specified. AM を指定すると、午前の時刻を表します。If AM is specified, the value represents the hour that starts at midnight. PM を指定すると、正午を表します。If PM is specified, the value represents the hour that starts at noon. たとえば、12:01 という値は、12:01 PM では正午を 1 分過ぎた時刻、12:01 AM では午前 0 時を 1 分過ぎた時刻を表します。For example, 12:01 is 1 minute after noon, as is 12:01 PM; and 12:01 AM is one minute after midnight. 12:01 AM と指定することは、00:01 または 00:01 AM と指定することと同じです。Specifying 12:01 AM is the same as specifying 00:01 or 00:01 AM.

13 から 23 までの時刻値は、AM または PM を指定していなくても、午後の時刻を表します。Hour values from 13 through 23 represent hours after noon if AM or PM is not specified. また、PM を指定した場合も午後の時刻を表します。The values also represent the hours after noon when PM is specified. 時刻値が 13 から 23 までの場合、AM を指定することはできません。AM cannot be specified when the hour value is from 13 through 23.

24 という時刻値は無効です。An hour value of 24 is not valid. 午前 0 時を表すには、12:00 AM または 00:00 を使います。To represent midnight, use 12:00 AM or 00:00.

ミリ秒の前には、コロン (:) またはピリオド (.) を付けます。Milliseconds can be preceded by either a colon (:) or a period (.). コロンを付けると、その数値は 1000 分の 1 秒単位になります。If a colon is used, the number means thousandths-of-a-second. ピリオドを付けると、数字が 1 桁なら 10 分の 1 秒単位に、2 桁なら 100 分の 1 秒単位に、3 桁なら 1000 分の 1 秒単位になります。If a period is used, a single digit means tenths-of-a-second, two digits mean hundredths-of-a-second, and three digits mean thousandths-of-a-second. たとえば、12:30:20:1 は 12 時 30 分を 20 と 1000 分の 1 秒過ぎた時刻を表し、12:30:20.1 は 12 時 30 分を 20 と 10 分の 1 秒過ぎた時刻を表します。For example, 12:30:20:1 indicates 20 and one-thousandth seconds past 12:30; 12:30:20.1 indicates 20 and one-tenth seconds past 12:30.
ISO 8601ISO 8601 Notes
hh:mm:sshh:mm:ss

hh:mm[:ss][.fractional seconds]hh:mm[:ss][.fractional seconds]
hh は、タイム ゾーン オフセットの時間数を表す、0 から 23 までの 2 桁の数字です。hh is two digits, ranging from 0 to 23, that represent the number of hours in the time zone offset.

mm は、タイム ゾーン オフセットの追加の分数を表す、0 から 59 までの 2 桁の数字です。mm is two digits, ranging from 0 to 59, that represent the number of additional minutes in the time zone offset.
ODBCODBC Notes
{t 'hh:mm:ss[.fractional seconds]'}{t 'hh:mm:ss[.fractional seconds]'} ODBC API 固有です。ODBC API specific.

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

ISO 8601 (5.3.2 および 5.3) では、午前 0 時を表す時刻値 24 や、59 を超えるうるう秒の使用が定義されていますが、こうした用法は、下位互換性および既存の日付時刻型との一貫性を保つためサポート対象外となります。Using hour 24 to represent midnight and leap second over 59 as defined by ISO 8601 (5.3.2 and 5.3) are not supported to be backward compatible and consistent with the existing date and time types.

下位クライアントに使用される既定の文字列リテラル形式は、hh:mm:ss[.nnnnnnn] として定義されている SQL 標準形式に準拠しています。The default string literal format (used for down-level client) will align with the SQL standard form, which is defined as hh:mm:ss[.nnnnnnn]. この形式は、1 秒未満の秒を除き、TIME に対する ISO 8601 の定義と似ています。This format resembles the ISO 8601 definition for TIME excluding fractional seconds.

下位クライアントの下位互換性Backward Compatibility for Down-level Clients

一部の下位レベル クライアントは、timedatedatetime2datetimeoffset データ型をサポートしていません。Some down-level clients do not support the time, date, datetime2 and datetimeoffset data types. SQL ServerSQL Server の上位インスタンスと下位クライアントの間のデータ型マッピングを次の表に示します。The following table shows the type mapping between an up-level instance of SQL ServerSQL Server and down-level clients.

SQL ServerSQL Server のデータ型data type 下位クライアントに渡される既定の文字列リテラル形式Default string literal format passed to down-level client 下位 ODBCDown-level ODBC 下位 OLEDBDown-level OLEDB 下位 JDBCDown-level JDBC 下位 SQLCLIENTDown-level SQLCLIENT
timetime hh:mm:ss[.nnnnnnn]hh:mm:ss[.nnnnnnn] SQL_WVARCHAR または SQL_VARCHARSQL_WVARCHAR or SQL_VARCHAR DBTYPE_WSTR または DBTYPE_STRDBTYPE_WSTRor DBTYPE_STR Java.sql.StringJava.sql.String String または SqStringString or SqString
datedate -YYYY-MM-DDYYYY-MM-DD SQL_WVARCHAR または SQL_VARCHARSQL_WVARCHAR or SQL_VARCHAR DBTYPE_WSTR または DBTYPE_STRDBTYPE_WSTRor DBTYPE_STR Java.sql.StringJava.sql.String String または SqStringString or SqString
datetime2datetime2 YYYY-MM-DD hh:mm:ss[.nnnnnnn]YYYY-MM-DD hh:mm:ss[.nnnnnnn] SQL_WVARCHAR または SQL_VARCHARSQL_WVARCHAR or SQL_VARCHAR DBTYPE_WSTR または DBTYPE_STRDBTYPE_WSTRor DBTYPE_STR Java.sql.StringJava.sql.String String または SqStringString or SqString
datetimeoffsetdatetimeoffset YYYY-MM-DD hh:mm:ss[.nnnnnnn] [+|-]hh:mmYYYY-MM-DD hh:mm:ss[.nnnnnnn] [+|-]hh:mm SQL_WVARCHAR または SQL_VARCHARSQL_WVARCHAR or SQL_VARCHAR DBTYPE_WSTR または DBTYPE_STRDBTYPE_WSTRor DBTYPE_STR Java.sql.StringJava.sql.String String または SqStringString or SqString

日付と時刻のデータ型の変換Converting Date and Time Data

日付と時刻のデータ型に変換する場合、SQL ServerSQL Server で日付または時刻と認識できない値はすべて拒否されます。When you convert to date and time data types, SQL ServerSQL Server rejects all values it cannot 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)

time(n) データ型から他の日付/時刻データ型への変換Converting time(n) Data Type to Other Date and Time Types

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

time(n) への変換では、時、分、秒がコピーされます。When the conversion is to time(n), the hour, minute, and seconds are copied. 変換先の有効桁数が、ソースの有効桁数よりも小さい場合、秒の小数部は変換先の有効桁数に合わせて切り上げられます。When the destination precision is less than the source precision, the fractional seconds is rounded up to fit the destination precision. 次の例は、time(4) 値を time(3) 値に変換した結果を示しています。The following example shows the results of converting a time(4) value to a time(3) value.

DECLARE @timeFrom time(4) = '12:34:54.1237';  
DECLARE @timeTo time(3) = @timeFrom;  
  
SELECT @timeTo AS 'time(3)', @timeFrom AS 'time(4)';  
  
--Results  
--time(3)      time(4)  
-------------- -------------  
--12:34:54.124 12:34:54.1237  
--  
--(1 row(s) affected)  

date に変換すると、変換は失敗し、エラー メッセージ 206"オペランド型の不整合: date は time と互換性がありません" が発生します。If the conversion is to date, the conversion fails, and error message 206 is raised: "Operand type clash: date is incompatible with time".

変換先が datetime の場合は、時、分、秒の値がコピーされ、日付部分が "1900-01-01" に設定されます。When the conversion is to datetime, hour, minute, and second values are copied; and the date component is set to '1900-01-01'. time(n) 値の秒の小数部の有効桁数が 3 桁より大きい場合、datetime の結果は切り捨てられます。When the fractional seconds precision of the time(n) value is greater than three digits, the datetime result will be truncated. 次のコードでは、time(4) の値を datetime の値に変換した結果を示します。The following code shows the results of converting a time(4) value to a datetime value.

DECLARE @time time(4) = '12:15:04.1237';  
DECLARE @datetime datetime= @time;  
SELECT @time AS '@time', @datetime AS '@datetime';  
  
--Result  
--@time         @datetime  
--------------- -----------------------  
--12:15:04.1237 1900-01-01 12:15:04.123  
--  
--(1 row(s) affected)  
  

変換先が smalldatetime の場合は、日付が "1900-01-01" に設定され、時間と分の値が切り上げられます。When the conversion is to smalldatetime, the date is set to '1900-01-01', and the hour and minute values are rounded up. 秒と秒の小数部は 0 に設定されます。The seconds and fractional seconds are set to 0. 次のコードは、time(4) 値を smalldatetime 値に変換した結果を示しています。The following code shows the results of converting a time(4) value to a smalldatetime value.

-- Shows rounding up of the minute value.  
DECLARE @time time(4) = '12:15:59.9999';   
DECLARE @smalldatetime smalldatetime= @time;    
SELECT @time AS '@time', @smalldatetime AS '@smalldatetime';   
  
--Result  
@time            @smalldatetime  
---------------- -----------------------  
12:15:59.9999    1900-01-01 12:16:00--  
--(1 row(s) affected)  
  
-- Shows rounding up of the hour value.  
DECLARE @time time(4) = '12:59:59.9999';   
DECLARE @smalldatetime smalldatetime= @time;    
  
SELECT @time AS '@time', @smalldatetime AS '@smalldatetime';  
@time            @smalldatetime  
---------------- -----------------------  
12:59:59.9999    1900-01-01 13:00:00  
  
(1 row(s) affected)  
  

変換先が datetimeoffset(n) の場合は、日付が "1900-01-01" に設定され、時刻がコピーされます。If the conversion is to datetimeoffset(n), the date is set to '1900-01-01', and the time is copied. タイム ゾーン オフセットが +00:00 に設定されます。The time zone offset is set to +00:00. time(n) の値の秒の小数部の有効桁数が datetimeoffset(n) の値の有効桁数を超える場合、値はその桁数に合わせて切り上げられます。When the fractional seconds precision of the time(n) value is greater than the precision of the datetimeoffset(n) value, the value is rounded up to fit. 次の例は、time(4) 値を datetimeoffset(3) 型に変換した結果を示しています。The following example shows the results of converting a time(4) value to a datetimeoffset(3) type.

DECLARE @time time(4) = '12:15:04.1237';  
DECLARE @datetimeoffset datetimeoffset(3) = @time;  
  
SELECT @time AS '@time', @datetimeoffset AS '@datetimeoffset';  
  
--Result  
--@time         @datetimeoffset  
--------------- ------------------------------  
--12:15:04.1237 1900-01-01 12:15:04.124 +00:00  
--  
--(1 row(s) affected)  
  

変換先が datetime2(n) の場合は、日付が "1900-01-01"' に設定され、時刻部分がコピーされ、タイム ゾーン オフセットが 00:00 に設定されます。When converting to datetime2(n), the date is set to '1900-01-01', the time component is copied, and the time zone offset is set to 00:00. datetime2(n) 値の秒の小数部の有効桁数が time(n) 値を超える場合、値はその桁数に合わせて切り上げられます。When the fractional seconds precision of the datetime2(n) value is greater than the time(n) value, the value will be rounded up to fit. 次の例は、time(4) 値を datetime2(2) 値に変換した結果を示しています。The following example shows the results of converting a time(4) value to a datetime2(2) value.

DECLARE @time time(4) = '12:15:04.1237';  
DECLARE @datetime2 datetime2(3) = @time;  
  
SELECT @datetime2 AS '@datetime2', @time AS '@time';  
  
--Result  
--@datetime2              @time  
------------------------- -------------  
--1900-01-01 12:15:04.124 12:15:04.1237  
--  
--(1 row(s) affected)  

文字列リテラルの time(n) への変換Converting String Literals to time(n)

文字列リテラルから日付/時刻データ型への変換は、文字列のすべての部分が有効な形式になっている場合に可能になります。Conversions from string literals to date and time types are permitted if all parts of the strings are in valid formats. それ以外の場合は実行時エラーが発生します。Otherwise, a runtime error is raised. 日付/時刻データ型から文字列リテラルへの暗黙的な変換や、スタイルを指定しない明示的な変換では、現在のセッションの既定の形式が使用されます。Implicit conversions or explicit conversions that do not specify a style, from date and time types to string literals will be in the default format of the current session. 次の表では、文字列リテラルを time データ型に変換する規則を示します。The following table shows the rules for converting a string literal to the time data type.

入力文字列リテラルInput string literal 変換規則Conversion Rule
ODBC DATEODBC DATE ODBC 文字列リテラルは、datetime データ型にマップされます。ODBC string literals are mapped to the datetime data type. ODBC 日付時刻リテラルから time 型への代入演算を行うと、datetime 型とこれらの型との間で、変換規則で定義されている暗黙的な変換が行われます。Any assignment operation from ODBC DATETIME literals into timetypes will cause an implicit conversion between datetime and this type as defined by the conversion rules.
ODBC TIMEODBC TIME 上記の ODBC 日付の規則を参照してください。See ODBC DATE rule above.
ODBC DATETIMEODBC DATETIME 上記の ODBC 日付の規則を参照してください。See ODBC DATE rule above.
DATE のみDATE only 既定値が指定されます。Default values are supplied.
TIME のみTIME only 単純変換Trivial
タイム ゾーンのみTIMEZONE only 既定値が指定されます。Default values are supplied.
DATE + TIMEDATE + TIME 入力文字列の時刻部分が使用されるThe TIME part of the input string is used.
DATE + TIMEZONEDATE + TIMEZONE 許可されていません。Not allowed.
TIME + TIMEZONETIME + TIMEZONE 入力文字列の時刻部分が使用されるThe TIME part of the input string is used.
DATE + TIME + TIMEZONEDATE + TIME + TIMEZONE ローカル datetime の時刻部分が使用されます。The TIME part of local DATETIME will be used.

使用例Examples

A.A. 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

B.B. 有効な時刻文字列リテラルを time(7) 列に挿入するInserting Valid Time String Literals into a time(7) Column

次の表では、time(7) データ型の列に挿入可能な各種の文字列リテラルと、その列に格納される値を示します。The following table lists different string literals that can be inserted into a column of data type time(7) with the values that are then stored in that column.

文字列リテラル形式の種類String literal format type 挿入する文字列リテラルInserted string literal 格納される time(7) 値time(7) value that is stored [説明]Description
SQL ServerSQL Server '01:01:01:123AM''01:01:01:123AM' 01:01:01.123000001:01:01.1230000 秒の小数部の有効桁数の前にコロン (:) を付けた場合、小数点以下桁数が 3 桁を超えると、エラーが発生します。When a colon (:) comes before fractional seconds precision, scale cannot exceed three positions or an error will be raised.
SQL ServerSQL Server '01:01:01.1234567 AM''01:01:01.1234567 AM' 01:01:01.123456701:01:01.1234567 AM または PM を指定した場合、時刻は 24 時間形式で格納され、リテラルの AM または PM は格納されません。When AM or PM is specified, the time is stored in 24-hour format without the literal AM or PM
SQL ServerSQL Server '01:01:01.1234567 PM''01:01:01.1234567 PM' 13:01:01.123456713:01:01.1234567 AM または PM を指定した場合、時刻は 24 時間形式で格納され、リテラルの AM または PM は格納されません。When AM or PM is specified, the time is stored in 24-hour format without the literal AM or PM
SQL ServerSQL Server '01:01:01.1234567PM''01:01:01.1234567PM' 13:01:01.123456713:01:01.1234567 AM または PM の前の空白は省略できます。A space before AM or PM is optional.
SQL ServerSQL Server '01AM''01AM' 01:00:00.000000001:00:00.0000000 時だけを指定した場合、他のすべての値は 0 になります。When only the hour is specified, all other values are 0.
SQL ServerSQL Server '01 AM''01 AM' 01:00:00.000000001:00:00.0000000 AM または PM の前の空白は省略できます。A space before AM or PM is optional.
SQL ServerSQL Server '01:01:01''01:01:01' 01:01:01.000000001:01:01.0000000 秒の小数部の有効桁数を指定しなかった場合、データ型で定義されている各桁が 0 になります。When fractional seconds precision is not specified, each position that is defined by the data type is 0.
ISO 8601ISO 8601 '01:01:01.1234567''01:01:01.1234567' 01:01:01.123456701:01:01.1234567 ISO 8601 に準拠するには、AM または PM ではなく、24 時間形式を使用します。To comply with ISO 8601, use 24-hour format, not AM or PM.
ISO 8601ISO 8601 '01:01:01.1234567 +01:01''01:01:01.1234567 +01:01' 01:01:01.123456701:01:01.1234567 入力ではオプションでタイム ゾーンの差 (TZD) を使えますが、保存はされません。The optional time zone difference (TZD) is allowed in the input but is not stored.

C.C. date 型と time 型のそれぞれの列に対して時間の文字列リテラルを挿入するInserting Time String Literal into Columns of Each date and time Date Type

次の表の 1 列目は、2 列目に示した date データ型または time データ型のデータベース テーブル列に挿入する時間の文字列リテラルを示しています。In the following table the first column shows a time string literal to be inserted into a database table column of the date or time data type shown in the second column. 3 列目は、データベース テーブル列に格納される値を示しています。The third column shows the value that will be stored in the database table column.

挿入する文字列リテラルInserted string literal [列データ型]Column data type 列に格納される値Value that is stored in column [説明]Description
'12:12:12.1234567''12:12:12.1234567' time(7)time(7) 12:12:12.123456712:12:12.1234567 秒の小数部の有効桁数が列に指定された値を超えている場合、エラーなしで文字列が切り詰められます。If the fractional seconds precision exceeds the value specified for the column, the string will be truncated without error.
'2007-05-07''2007-05-07' datedate NULLNULL time 値により、INSERT ステートメントが失敗します。Any time value will cause the INSERT statement to fail.
'12:12:12''12:12:12' smalldatetimesmalldatetime 1900-01-01 12:12:001900-01-01 12:12:00 1 秒未満の秒の有効桁数の値によって、INSERT ステートメントが失敗します。Any fractional seconds precision value will cause the INSERT statement to fail.
'12:12:12.123''12:12:12.123' datetimedatetime 1900-01-01 12:12:12.1231900-01-01 12:12:12.123 秒の有効桁数が 3 桁を超えると、INSERT ステートメントが失敗します。Any second precision longer than three positions will cause the INSERT statement to fail.
'12:12:12.1234567''12:12:12.1234567' datetime2(7)datetime2(7) 1900-01-01 12:12:12.12345671900-01-01 12:12:12.1234567 秒の小数部の有効桁数が列に指定された値を超えている場合、エラーなしで文字列が切り詰められます。If the fractional seconds precision exceeds the value specified for the column, the string will be truncated without error.
'12:12:12.1234567''12:12:12.1234567' datetimeoffset(7)datetimeoffset(7) 1900-01-01 12:12:12.1234567 +00:001900-01-01 12:12:12.1234567 +00:00 秒の小数部の有効桁数が列に指定された値を超えている場合、エラーなしで文字列が切り詰められます。If the fractional seconds precision exceeds the value specified for the column, the string will be truncated without error.

参照See Also

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