smalldatetime (Transact-)SQL)

  • 07/22/2017
  • 読了4分
    • M
    • j
    • c
    • M
    • m
    • +4
  • に適用される。 SQL Server (サポートされるすべてのバージョン) Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Parallel Data Warehouse

    時間と組み合わせた日付を定義する。 時刻は 24 時間制に基づき、秒は常に 0 (:00) で、端数はありません。

    注意

    新しい作業には、時刻、日付、datetime2、datetimeoffset データ型を使用します。 これらの型は、標準SQLと一致しています。 time、datetime2、および datetimeoffset は、より多くの秒の精度を提供します。datetimeoffset は、グローバルに展開されたアプリケーションのタイム ゾーン サポートを提供します。

    smalldatetime description

    Default string literal formats
    {9366レベルクライアント)

    Property Value
    Syntax smalldatetime
    Usage DECLARE @MySmalldatetime smalldatetime
    CREATE TABLE Table1 ( Column1 smalldatetime )
    Default string literal formats
    (used for down->) {9366>DECLARE @MySmalldatetime Smalldatetime
    Usage 該当なし
    日付範囲 1900-01-01 ~ 2079-06-06
    January 1, 1900年~2079年6月6日
    時間範囲 00:00:00 から 23:59:59
    2007-05-09 23:59:59 は丸められます
    2007-05-10 00:00:00
    要素の範囲 YYYY は1900から2079までの4桁で1年を表わします。
    MM は01から12までの2桁で、指定した年の月を表します。
    DD は月によって01から31までの2桁で、指定した月の日を表します。
    hh は00から23までの2桁で、時を表します。
    mm は00から59までの2桁で、分を表します。
    SS は00から59までの2桁で、秒を表します。 29.998秒以下の値は、1分未満に切り捨てられます。 29.999秒以上の値は、分単位に切り上げられます。
    文字長 最大19ポジション
    保存サイズ 4バイト、固定です。
    精度 1分
    初期値 1900-01-01 00:00:00
    Gregorian
    (全年の範囲を含んでいない)。)
    ユーザーによる秒単位の精度を定義する No
    タイムゾーン・オフセットを認識・保存する No
    Daylight Saving aware No

    ANSI and ISO 8601 Compliance

    smalldatetime is not ANSI or ISO 8601 compliant.

    日付および時刻データの変換

    日付および時刻データ型に変換する場合、SQL Server は日付または時刻として認識できないすべての値を拒否します。 日付および時刻データでの CAST および CONVERT 関数の使用については、CAST および CONVERT (Transact-SQL) を参照してください。

    smalldatetime を他の日付および時刻データ型に変換

    このセクションでは smalldatetime データ型が他の日付および時刻データ型に変換されるときに何が起こるかを説明します。

    日付への変換では年、月および日が複写されます。 次のコードは、smalldatetime値をdate値に変換した結果を示しています。

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)への変換では、時間、分、および秒がコピーされます。 次のコードは、smalldatetime値をtime(4)値に変換した結果を示しています。

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値にコピーされます。 端数の秒数は0に設定されます。次のコードは、smalldatetime値をdatetime値に変換した結果を示しています。

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)の値にコピーされます。 端数の秒は0に設定され、タイムゾーンオフセットは+00:0に設定されます。 次のコードは、smalldatetime値をdatetimeoffset(4)値に変換した結果を示しています。

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)値にコピーされます。 次のコードは、smalldatetime 値を datetime2(4) 値に変換した結果を示しています。

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) 

A. 秒を含む文字列リテラルをsmalldatetimeにキャストする

次の例では、文字列リテラル内の秒を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); 

。35:00

入力 出力
2007-05-08 12:35:29 2007-05-08 12.35:29
2007-05-08 12:35:30 2007-05-08 12:36:00
2007-05-08 12:59:59.998 2007-05-08 13:00:00

B. 日付と時刻のデータ型を比較する

次の例では、文字列を各日付と時刻のデータ型にキャストした結果を比較しています

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'; 

コメントを残す

メールアドレスが公開されることはありません。