datetimeoffset (Transact-SQL)
Bir saat dilimi tanıma ve 24 saatlik temel alan bir gün süre ile birlikte bir tarih tanımlar.
Tüm genel bakış için Transact-SQL Tarih ve saat veri türü ve işlevler, bkz: Tarih ve saat veri türleri ve işlevler (Transact-SQL). Bilgi ve tarih ve saat veri türü ve işlevleri için ortak olan bir örnek için bkz: Tarih ve saat veri kullanma.
datetimeoffset açıklaması
Özellik |
Değer |
---|---|
Sözdizimi |
datetimeoffset [ (fractional seconds precision) ] |
Kullanım |
@ MyDatetimeoffset BILDIRIN. datetimeoffset(7) tablo Table1 CREATE (Sütun1 datetimeoffset(7) ) |
Varsayılan dize literal biçimleri (alt düzey istemci için kullanılır) |
YYYY-MM-DD hh:mm:ss[.nnnnnnn] [{+|-}hh:mm] Daha fazla bilgi için bkz: "geri uyumluluk için kapalı-istemcilerini düzey" bölümü Tarih ve saat veri kullanma. |
Tarih aralık |
0001-01-01-9999-12-31 January 1,1 A.D.through December 31, 9999 A.D. |
saat aralık |
23:59:59.9999999-00: 00: 00 |
Saat dilimini aralık mahsup |
|
Öğe aralıkları |
YYYY 0001 bir yılı gösteren 9999 arasında değişen bir dört basamaklı ' dir. AA iki basamak, 01 ile belirtilen yıldaki ay temsil eden 12 kadar olur. GG, iki basamaklı, 01 ' bir belirtilen ayın gününü gösteren 31 ayın bağlı arasında olur. hh saat temsil eden 23, 00 ' arasında iki basamaklı ' dir. mm iki basamak, dakikayı temsil eden 59, 00 ' arasında olur. ss saniye temsil eden 59, 00 ' arasında iki basamaklı olur. n * kesirli saniye temsil eden 9999999 için 0 ile arasında yedi basamağa sıfırdır. hh-14 +14 için aralık iki basamak olur. iki basamaklı, o 00-59 aralığından mm olan. |
Karakter uzunluğu |
26 positions minimum (YYYY-MM-DD hh:mm:ss {+|-}hh:mm) to 34 maximum (YYYY-MM-DD hh:mm:ss.nnnnnnn {+|-}hh:mm) |
Duyarlık, Ölçek |
Belirtilen ölçekSonuç (duyarlık, Ölçek)Sütun uzunluğunu (bayt)Kesirli saniye duyarlığı
datetimeoffset (34,7)107
datetimeoffset(0) (26,0)80-2
datetimeoffset(1) (28,1)80-2
datetimeoffset(2) (29,2)80-2
datetimeoffset(3) (30,3)93-4
datetimeoffset(4) (31,4)93-4
datetimeoffset(5) (32,5)105-7
datetimeoffset(6) (33,6)105-7
datetimeoffset(7) (34,7)105-7
|
Depolama boyutu |
Sabit 10 bayt 100ns kesirli ikinci duyarlık varsayılan varsayılan olur. |
Doğruluğu |
100 nanosaniye şeklindedir |
Varsayılan değer |
1900-01-01 00:00:00 00:00 |
Calendar |
Gregoryen takvim |
Kullanıcı tanımlı kesirli ikinci duyarlığı |
Evet |
Saat dilimi uzaklığı tanımayan ve koruma |
Evet |
Gün ışığından yararlanma saatine bilgisi kaydediliyor |
Hayır |
Desteklenen dize literal biçimler datetimeoffset için
Aşağıdaki tablo, desteklenen ISO 8601 dize literal biçimleri listeler. datetimeoffset. Tarih ve saat bölümlerinin alfabetik, sayısal, unseparated ve zaman biçimleri hakkında daha fazla bilgi için datetimeoffset, bkz: Tarih (Transact-SQL) ve saat (Transact-SQL).
iso 8601 |
Açıklama |
---|---|
YYYY-MM-DDThh:mm:ss[.nnnnnnn][{+|-}hh:mm] |
küme DILI ve küme DATEFORMAT oturum yerel ayar ayar ayarları tarafından bu iki biçimden etkilenmez.Arasında boşluklara izin verilmez datetimeoffset ve datetime bölümleri. |
YYYY-MM-DDThh:mm:ss[.nnnnnnn]Z (UTC) |
Bu biçim ISO tanımı gösterir datetime Bölümü Koordinatlı Evrensel Saat'e (UTC) ifade. Örneğin, 12:30:30.12345-07 1999-12-12: 00 1999-12-12 19:30:30.12345Z gösterilir. |
Yansıtma
Bir saat dilimi uzaklığı bölge için UTC gelen belirtir bir time veya datetime Değer. Saat dilimini mahsup hesabı olarak gösterilen [+ |-] ss: dd:
hh, 00 ' 14'e aralık ve bir saat dilimi uzaklığı saat sayısını gösteren iki basamak olur.
mm iki basamak, 00 ' ek saat dilimi uzaklığı dakika sayısını gösteren-59 arasında olur.
+ (artı) veya -(eksi) için bir saat dilimi uzaklığı zorunlu işaretidir.Bu, saat dilimi uzaklığı eklendiğinde veya yerel saat elde etmek için UTC zamanını düşülen olup olmadığını gösterir.Geçerli saat dilimi uzaklığı-14 aralık: +14 için 00: 00.
Saat dilimini mahsup aralık XSD şeması tanımı için W3C XML standart izler ve SQL 2003 standart tanım, 12: 59 +14 için biraz farklıdır: 00.
Isteğe bağlı bir tür parametresi fractional seconds precision basamak saniye için kesirli kısmını belirtir. Bu değer, 0 ile 7 (100 nanosaniye şeklindedir) ile bir tamsayı olabilir.Varsayılan değer fractional seconds precision 100ns olan (yedi basamak için kesirli kısmını saniye).
Verilerin veritabanında depolanan ve işlenen karşılaştırıldığında, sıralanmış ve UTC'de olarak sunucudaki dizin.Saat dilimi uzaklığı almayla ilgili veritabanında korunur.
Belirli bir saat dilimi farkı gün ışığından yararlanma saati (DST) uyumlu ve verilen tüm için ayarlanmış olmasını kabul datetime DST dönemin olmasıdır.
Için datetimeoffset UTC ve yerel (kalıcı veya dönüştürülmüş bir saat dilimi uzaklığı) hem yazın datetime Değer ekleme, güncelleştirme, aritmetik, convert veya atama işlemleri sırasında doğrulanır. Geçersiz UTC veya yerel (kalıcı veya dönüştürülmüş bir saat dilimi uzaklığı) algılama datetime değeri geçersiz değer hata neden. Örneğin, 9999-12-31/10: 10: 00 UTC, ancak yerel saat dilimi uzaklığı +13 saate taşma alanında geçerlidir: 50.
ANSI ve ISO 8601 uyumluluğu
ANSI ve ISO 8601 uyumluluğu bölümlerini TARİH and SAAT için konuları Uyguladatetimeoffset.
Örnekler
Aşağıdaki örnek bir dize her çevrim sonuçlarını karşılaştırır. date ve time veri türü.
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'
,CAST('2007-05-08 12:35:29.1234567+12:15' AS datetimeoffset(7)) AS
'datetimeoffset IS08601';
Here is the result set.
Veri türü |
Output |
---|---|
Time |
12:35:29.1234567 |
Date |
2007-05-08 |
Smalldatetime |
2007-05-08 12:35:00 |
Datetime |
2007-05-08 12:35:29.123 |
datetime2 |
2007-05-08 12:35:29.1234567 |
Datetimeoffset |
2007-05-08 12:35:29.1234567 +12:15 |
See Also