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 値を受け入れます。