Aracılığıyla paylaş


Gelişmiş tarih veya saat türleri (OLE DB ve ODBC) için toplu kopyalama değişiklikleri

Bu konuda toplu kopya işlevlerini desteklemek için tarih/saat geliştirmeleri açıklanır.Bu konudaki bilgiler, OLE DB ve ODBC içinde geçerlidirSQL ServerYerel istemci.

Dosya biçimi

Etkileşimli biçimindeki dosyaları oluştururken, tarih/saat türleri ve karşılık gelen ana bilgisayar dosyası veri türü adlarını belirtmek için kullanılan girdi aşağıdaki tabloda açıklanmaktadır.

Dosya depolama türü

Ana dosya veri türü

İstemine yanıt: "Enter the file storage type of field <field_name> [<default>]:"

Tarih Saat

SQLDATETIME

d

Smalldatetime

SQLDATETIM4

D

Tarih

SQLDATE

de

Time

SQLTIME

e

Datetime2

SQLDATETIME2

D2

Datetimeoffset

SQLDATETIMEOFFSET

yapın

XML biçimi dosyası XSD aşağıdaki eklemeleri gerekir:

    <xs:complexType name="SQLDATETIME2">
        <xs:complexContent>
            <xs:extension base="bl:Fixed"/>
        </xs:complexContent>
    </xs:complexType>
    <xs:complexType name="SQLDATETIMEOFFSET">
        <xs:complexContent>
            <xs:extension base="bl:Fixed"/>
        </xs:complexContent>
    </xs:complexType>
    <xs:complexType name="SQLDATE">
        <xs:complexContent>
            <xs:extension base="bl:Fixed"/>
        </xs:complexContent>
    </xs:complexType>
    <xs:complexType name="SQLTIME">
        <xs:complexContent>
            <xs:extension base="bl:Fixed"/>
        </xs:complexContent>
    </xs:complexType>

Karakter veri dosyaları

Açıklandığı gibi karakter veri dosyalarını, tarih ve saat değerlerini temsil edilen "veri biçimleri: Veri türü desteği için ODBC tarih/saat geliştirmeleriİçin ODBC ya da dizeleri ve rakamları"bölümünü Veri türü desteği için OLE DB tarih/saat geliştirmeleriOLE DB.

Yerel veri dsya, dört yeni türü için tarih ve saat değerlerini, TDS temsilini 7 bir ölçek ile temsil edilir (Bu, desteklenen en yüksek olduğu için SQL Serverve Kullanımıbcp veri dosyalarını değil bu sütun ölçeği).Varolan depolanmasını hiçbir değişiklik yokdatetimevesmalldatetimetürü veya bunların tablo verisi akışı (TDS) sunumu.

Depolama boyutları farklı depolama türü için OLE DB için aşağıda belirtilmiştir:

Dosya depolama türü

Depolama boyutu

datetime

8

smalldatetime

4

tarih

3

saat

6

datetime2

9

datetimeoffset

11

Boyutları için ODBC gibidir.Her zaman BCP.exe duyarlılık sunucudan alır duyarlılık biçimi veya veri dosyalarını saklamak gerekli değildir, çünkü olduğunu unutmayın.

Dosya depolama türü

Depolama boyutu

Depolama biçimi

tarih/saat (d)

8

TDS

smalldatetime (D)

4

TDS

Tarih (de)

3

TDS

saat (e)

6

TDS

datetime2 (d2)

9

TDS

datetimeoffset (iş)

11

TDS

Sqlncli.h, BCP türleri

Aşağıdaki türleri için ODBC BCP API uzantıları kullanılmak üzere sqlncli.h tanımlanır.İle bu tür geçirileneUserDataTypeparametreIBCPSession::BCPColFmtOLE DB.

Dosya depolama türü

Ana dosya veri türü

Sqlncli.h ile kullanmak için yazın IBCPSession::BCPColFmt

Değer

Tarih Saat

SQLDATETIME

BCP_TYPE_SQLDATETIME

0x3d

Smalldatetime

SQLDATETIM4

BCP_TYPE_SQLDATETIME4

0x3a

Tarih

SQLDATE

BCP_TYPE_SQLDATE

0x28

Time

SQLTIME

BCP_TYPE_SQLTIME

0x29

Datetime2

SQLDATETIME2

BCP_TYPE_SQLDATETIME2

0x2A

Datetimeoffset

SQLDATETIMEOFFSET

BCP_TYPE_SQLDATETIMEOFFSET

0x2B

BCP veri türü dönüşümlerini

Aşağıdaki tabloda, dönüştürme bilgileri sağlar.

OLE DB Note   The following conversions are performed by IBCPSession.IRowsetFastLoad uses OLE DB conversions as defined in Istemciden sunucuya gerçekleştirilen dönüştürme.Not tarih/saat değerlerini 1 olarak yuvarlanır/saniye ve smalldatetime 300th değerlerine sahip saniye aşağıda belirtilen istemci dönüştürme gerçekleştirdikten sonra sıfır olarak ayarlayın.Tarih saat yuvarlama, saat ve dakika, ancak tarihi değil yayar.

--İçin>

Kimden:

tarih

saat

smalldatetime

datetime

datetime2

datetimeoffset

Karakter:

wchar

Tarih

1

-

1,6

1,6

1,6

1,5,6

1,3

1,3

Time

Yok

1,10

1,7,10

1,7,10

1,7,10

1,5,7,10

1,3

1,3

Smalldatetime

1,2

1,4,10

1

1

1,10

1,5,10

1,11

1,11

Tarih Saat

1,2

1,4,10

1,12

1

1,10

1,5,10

1,11

1,11

Datetime2

1,2

1,4,10

1,10 (ODBC) 1,12 (OLE DB)

1,10

1,10

1,5,10

1,3

1,3

Datetimeoffset

1,2,8

1,4,8,10

1,8,10

1,8,10

1,8,10

1,10

1,3

1,3

CHAR/wchar (tarih)

9

-

9,6 (ODBC) 9,6,12 (OLE DB)

9,6 (ODBC) 9,6,12 (OLE DB)

9,6

9,5,6

Yok

Yok

CHAR/wchar (saat)

-

9,10

9,7,10 (ODBC) 9,7,10,12 (OLE DB)

9,7,10 (ODBC) 9,7,10, 12 (OLE DB)

9,7,10

9,5,7,10

Yok

Yok

CHAR/wchar (tarih)

9,2

9,4,10

9,10 (ODBC) 9,10,12 (OLE DB)

9,10 (ODBC) 9,10,12 (OLE DB)

9,10

9,5,10

Yok

Yok

CHAR/wchar (datetimeoffset)

9,2,8

9,4,8,10

9,8,10 (ODBC) 9,8,10,12 (OLE DB)

9,8,10 (ODBC) 9,8,10,12 (OLE DB)

9,8,10

9,10

Yok

Yok

Simge anahtar

Simge

Anlamı

-

Dönüştürme desteklenen.

Bir ODBC tanı kaydı SQLSTATE 07006 ve message "sınırlı veri türü özniteliği ihlali" ile oluşturulur.

1

Sağlanan veriler geçerli değil, bir ODBC tanı kaydı SQLSTATE 22007 ve "Geçersiz tarih biçimi" iletisi oluşturulur.Datetimeoffset değerler için saat bölümü içinde olmalıdır aralık UTC UTC için dönüştürme istenen bile dönüştürme sonrasında.Her saat TDS ve sunucu için UTC saat datetimeoffset değerleri normalize olmasıdır.O saat istemci işaretlemeniz gerekir; böylece bileşenleridir içinde aralık UTC dönüştürme sonra desteklenen.

2

Saat bileşeni yok sayılır.

3

Kesme ile veri kaybı oluşursa, ODBC için tanılama kayıt SQLSTATE 22001 sağ kesildi iletisini 'dize veri' ile oluşturulan kesirli saniye basamak (Ölçek) hedef sütun boyutunun aşağıdakilere göre belirlenir tablo.Sütun boyutları için daha fazla tablo aralık 7 ölçeği açık.Bu dönüştürme için en çok dokuz kesirli ikinci basamak, ODBC tarafından izin verilen en fazla izin vermelisiniz.

TürÖrtülü ölçeği0Örtülü ölçeği1..7
DBTIME2810,16
DBTIMESTAMP1921..27
DBTIMESTAMPOFFSET2628..34

OLE DB için veri kaybı ile kesme ortaya çıkarsa, hata deftere nakledilir.Kesirli saniye basamak (Ölçek) hedef sütun boyutunun aşağıdakilere göre belirlenir datetime2 için tablo.Büyük bir Ölçek 9 Tablo aralık sütun boyutları için açık.Bu dönüşüm, en çok dokuz kesirli ikinci basamak, OLE DB tarafından izin verilen üst sınırı için izin vermelisiniz.

TürÖrtülü ölçeği0Örtülü ölçeği1..9
DBTIME281..9
DBTIMESTAMP1921..29
DBTIMESTAMPOFFSET2628..36

4

Tarih bileşeni yok sayılır.

5

Saat UTC (örneğin, 00: 00) için küme.

6

saat sıfır olarak küme.

7

Tarih, 1900-01-01 için küme.

8

Saat farkı göz ardı edilir.

9

Dize ayrıştırılır ve bir tarihi, tarih, datetimeoffset veya saat değeri, ilk karşılaşılan noktalama karakteri ve diğer bileşenlerin durum dönüştürülür.Dize daha sonra dönüştürülür hedef türü, bu işlem tarafından belirlenen kaynak türü için bu konunun sonundaki tabloda kurallarına.Hatasız, sağlanan veriler ayrıştırılamıyor veya herhangi bir bileşen bölümü, izin verilen aralık dışında veya hedef türüne dönüştürme hazır türünden ise, bir hata (OLE DB) deftere nakledildiği veya SQLSTATE 22018 ve ileti "geçersiz karakter değeri for cast specification" bir ODBC tanı kaydı oluşturulur.Parametreleri, tarih ve smalldatetime yıl aralık dışında bu destek, bir hata (OLE DB) deftere veya SQLSATE 22007 "Geçersiz tarih biçimi" iletisi ile bir ODBC tanı kaydı oluşturulur.

Datetimeoffset için değeri içinde olmalıdır aralık UTC UTC için dönüştürme istenen bile dönüştürme sonrasında.Bunun nedeni, istemci bu saat doğrulamanız gerekir; böylece TDS ve sunucu her saat saat datetimeoffset değerleri için UTC, normalize bileşenleridir UTC dönüştürme sonra desteklenen aralıkta.Değer desteklenen UTC aralık içinde değil, bir hata (OLE DB) deftere nakledildiği veya SQLSTATE 22007 "Geçersiz tarih biçimi" iletisi ile bir ODBC tanı kaydı oluşturulur.

10

Kesilmesi veri kaybına sahip bir istemci sunucu dönüştürme ortaya çıkarsa, hata (OLE DB) deftere nakledildiği veya SQLSTATE 22008 "Tarih saat alan taşması" iletisi ile bir ODBC tanı kaydı oluşturulur.Değer sunucu tarafından kullanılan UTC aralık temsil edilebilir aralık dışında kalırsa da bu hata oluşur.Bir sunucu, saniye veya kesirli saniye kesme istemci dönüştürme oluşursa, bir uyarı yok.

11

Kesme ile veri kaybı olursa, bir tanı kaydı oluşturulur.

Bir sunucu ve istemci dönüştürme hakkında bir uyarı (ODBC SQLSTATE S1000) budur.

İstemci-sunucu dönüştürme, bu hata (ODBC SQLSTATE 22001),.

12

Saniye sıfır olarak küme ve kesirli saniye atılır.Kesme hata mümkündür.

Yok

VarolanSQL Server 2005ve eski davranış saklanır.