SQL Server の日時データ タイプ

SQL Server のレガシー データ タイプは次のとおりです。
  • datetime
  • smalldatetime
しかし、これらのデータ タイプは、メインフレーム アプリケーションの移行には推奨されません。移行を容易にするために、SQL Server 2008 では、次のデータ タイプが追加されました。
データ タイプ 範囲 小数秒桁数
date 0001-01-01 ~ 9999-12-31
time 00:00:00.0000000 ~ 23:59:59.9999999 0 ~ 7
datetime2 0001-01-01 00:00:00.0000000 ~ 9999-12-31 23:59:59.9999999 0 ~ 7
datetimeoffset

SQL Server では、日時データを文字列として読み取る機能にかなりの柔軟性があります。ここでは、移行に直接大きく関連しているサブセットのみを示します。

デフォルトの出力フォーマット

SQL Server は、date、time、および datetime の値を、yyyy-mm-dd、hh:m:ss.nnnnnnn (n はカラムの定義によって異なる)、および yyyy-mm-dd hh:mm:ss.nnnnnnn (n はカラムの定義によって異なる) のフォーマットで出力します。

DATE 値の文字列表現

フォーマット タイプ 日付フォーマット
ANSI/ISO yyyy-mm-dd 1987-10-12
アルファベット 月は 3 文字の略称または正式な名称で指定されます。 Apr 15 1996

15 Apr 1996

1996 Apr 15

数値 月は数値で指定され、セパレータにはスラッシュ、ハイフン、またはピリオドが使用されます。日、月、年の部分は、TSQL SET DATEFORMAT 文または SET LANGUAGE 文で変更できます。初期の順序は、ログインのデフォルト言語で決まります。us_english のデフォルト フォーマットは mdy です。設定は、テーブル sys.syslanguages に保存されます。 15/04/1996 04.15.1996 1996-4-15

TIME 値の文字列表現

SQL Server が受け入れる time 値のフォーマットは、14:30、14:30:20、14:30:20:145943、2 PM、2:30 PM、2:30:20 PM、2:30:20.145943 PM です。

DATETIME 値の文字列表現

SQL Server は、ISO 8601 フォーマット (yyyy-mm-ddThh:mm:ss.nnnnnn) および ANSI フォーマット (yyyy-mm-dd hh:mm:ss.nnnnnn) の datetime 値を受け入れます。