SQL SERVER 2008

تجارب من در رابطه با SQL SERVER

انواع داده ای Date و Time
ساعت ۱٢:٤٠ ‎ب.ظ روز ۱۳۸٧/٧/۳  کلمات کلیدی: sql server 2008 ، t-sql ، date ، time

یکی از مواردی که خیلی از طرف توسعه دهندگان مورد نیاز بود این بود که نوع DateTime در نسخه های قبل به صورت دو نوع مجزا در نسخه جدید آورده شودکه اینگونه هم شد. در نسخه جدید 4 نوع جدید برای این کار در نظر گرفته شده است که عبارتند از Date ،  Time، DateTime2 و DATETIMEOFFSET
در جدول زیر مشخصات این انواع جدید آورده شده است:

 

نوع داده

ذخیره سازی (bytes)

دامنه تاریخ

دقت

فرمت پیشنهادی تارخ و مثال

DATE

3

January 1, 0001, through December 31, 9999 (Gregorian calendar)

1 day

'YYYY-MM-DD'
'2009-02-12'

TIME

3 to 5

 

100 nanoseconds

'hh:mm:ss.nnnnnnn'
'12:30:15.1234567'

DATETIME2

6 to 8

January 1, 0001, through December 31, 9999

100 nanoseconds

'YYYY-MM-DD hh:mm:ss.nnnnnnn'
'2009-02-12 12:30:15.1234567'

DATETIMEOFFSET

8 to 10

January 1, 0001, through December 31, 9999

100 nanoseconds

'YYYY-MM-DD hh:mm:ss.nnnnnnn [+|-]hh:mm'
'2009-02-12 12:30:15.1234567 +02:00'

 

به مثال زیر نیز توجه کنید :

DECLARE
  @d   AS DATE           = '2009-02-12',
  @t   AS TIME           = '12:30:15.1234567',
  @dt2 AS DATETIME2      = '2009-02-12 12:30:15.1234567',
  @dto AS DATETIMEOFFSET = '2009-02-12 12:30:15.1234567 +02:00';
 
SELECT @d AS [@d], @t AS [@t], @dt2 AS [@dt2], @dto AS [@dto];

این انواع جدید در ODBC  و ADO.NET و OLE DB هم حمایت شده است جدول زیر معادل هر نوع را در Visual Studio 2008 نمایش میدهد :

SQL

ODBC

OLE DB

ADO.NET

DATE

SQL_TYPE_DATE/
SQL_DATE

DBTYPE_DBDATE

DateTime

TIME

SQL_TIME/
SQL_SS_TIME2

DBTYPE_DBTIME/
DBTYPE_DBTIME2

TimeSpan

DATETIMEOFFSET

SQL_SS_TIMESTAMPOFFSET

DBTYPE_DBTIMESTAMPOFFSET

DateTimeOffset

DATETIME2

SQL_TYPE_TIMESTAMP

SQL_TIMESTAMP

DBTYPE_DBTIMESTAMP

DateTime