SqlHints.com
Datetime2は、日付と時刻の値を格納するためにSql Server2008で導入された新しいデータ型です。 MSDNによると、MicrosoftはDateTimeの代わりにこの新しいデータ型を新しい作業に使用することを提案しています。 次の表は、この新しいDatetime2データ型と古いDateTimeデータ型の主な違いの一部をまとめたものです。
次の表は、この新しいDatetime2データ型と古いDateTimeデータ型の主な違い
DateTime | DateTime2 | ||
Min Value | 1753-01-01 00:00:00 | 0001-01-01 00:00:00 | |
Max Value | 9999-12-31 23:59:59.997 | 9999-12-31 23:59:59.9999999 | |
ストレージサイズ | 8バイト | 6-8バイト 注:パラメータnはオプションであり、指定されていない場合、小数 秒精度は7桁であり、0 7桁です。 For fractional seconds precision <3, takes 6 bytes For fractional seconds precision 3 or 4 it will take 7 bytes For fractional seconds precision >4 it will take 8 bytes |
|
Usage | Declare @now datetime | Declare @now datetime2(7) | |
Compliance | Is not an ANSI/ISO compliant | Is an ANSI/ISO compliant | |
現在の日付と時刻関数 | GetDate()–DateTimeデータ型のDB現在の日付と時刻を返します
例:SELECT GETDATE() |
sysdatetime()-datetime2データ型のdb現在の日付と時刻を返します
例:select sysdatetime() |
|
+/-日 | +/-日 | +/-日 | |
失敗します-DateAdd関数のみを使用する必要があります
例: |
小数秒の精度が3のdatetime2はdatetimeデータ型と同じです。 また、Datetime2(3)は、古いDateTimeデータ型が使用する8バイトの代わりに7バイトのストレージを使用し、より高い日付範囲も提供します(つまり、 0001-01-01から9999-12-31)DateTimeデータ型と比較しました。 今、私たちは例でこれを見てみましょう:p>
DECLARE @nowDateTime DATETIME = GETDATE(), @nowDateTime2 DATETIME2(3)= SYSDATETIME()SELECT DATALENGTH(@nowDateTime) 'DateTime Storage Size', DATALENGTH(@nowDateTime2) 'DateTime2(3) Storage Size'
Result:DateTime Storage Size DateTime2 Storage Size --------------------- ---------------------- 8 7
また読みます
- Varchar vs NVarchar
- Varchar vs Varchar(MAX)
- Char vs Varchar(Max)
- テキストvs Varchar(Max)
- Union vs Union All
- datetime vs datetime2
- set quoted_identifier on vs set quoted_identifier off
- ストアドプロシージャvsユーザー定義関数
- 主キー vs一意キー
- Raiserror vs Throw
- 一時テーブルVsテーブル変数
- len()vs Datalength()
- シーケンスVs Id
- datediff Vs datediff_big
- 左結合対左 外部結合
- 右結合対右外部結合
- 結合対内部結合
- 左外部結合対右外部結合
- SMALLDATETIME対DATETIME