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

  • -14: +14-00: 00

Öğ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