Gelişmiş tarih/saat türleri (ole db ve odbc) için toplu Kopyala değişiklikleri

Bu konuda toplu kopyalama işlevleri desteklemek için Tarih/saat geliştirmeleri açıklar. Bu konuda yer alan bilgiler geçerli ole db ve odbc SQL ServerNative Client.

Biçimi dosyaları

Biçimi dosyaları etkileşimli olarak oluştururken, Tarih ve saat türleri ve karşılık gelen ana bilgisayar dosyası veri türü adları belirtmek için kullanılan giriş aşağıdaki tabloda açıklanmaktadır.

Dosya depolama türü

Ana bilgisayar dosyası veri türü

Yanıt: "alan dosya depolama türünü girin <field_name><varsayılan>:"

DateTime

SQLDATETIME

d

Smalldatetime

SQLDATETIM4

D

Tarihi

SQLDATE

de

Time

SQLTIME

te

Datetime2

SQLDATETIME2

D2

Datetimeoffset

SQLDATETIMEOFFSET

yapmak

xml biçimi dosyası xsd aşağıdaki eklemeler olacaktır:

    <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>
    <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 dosyası

Karakter veri dosyalarında "veri biçimleri: dizeler ve harflerin" açıklandığı Tarih ve Saat değerlerini temsil edilir bölümünde odbc tarih/saat geliştirmeleri için veri türü desteğiODBC, ya da, ole db tarih/saat geliştirmeleri için veri türü desteğiole db için.

Yerel veri dosyaları içinde dört yeni türleri için Tarih ve saat değerleri ölçekli 7 onların tds tanıtımlarını gösterilir (çünkü bu tarafından desteklenen en çok SQL Serverve bcp veri dosyaları değil bu sütun ölçeği). Mevcut depolama birimine hiçbir değişiklik datetimeve smalldatetimetürü veya sekmeli veri akışı (tds) temsilcilikleri.

Depolama boyutları farklı depolama türleri için ole db için şunlardır:

Dosya depolama türü

Depolama boyutu

datetime

8

smalldatetime

4

tarihi

3

Saat

6

datetime2

9

datetimeoffset

11

Boyutları için odbc gibidir. BCP.exe her zaman hassas sunucudan alır çünkü o hassas biçimi veya veri dosyalarını saklamak için gerekli olmadığını unutmayın.

Dosya depolama türü

Depolama boyutu

Depolama biçimi

DateTime (d)

8

TDS

smalldatetime (d)

4

TDS

tarihi (de)

3

TDS

Saat (te)

6

TDS

datetime2 (d2)

9

TDS

datetimeoffset (do)

11

TDS

Sqlncli.h bcp türleri

Aşağıdaki odbc bcp API uzantıları ile kullanılacak sqlncli.h tanımlanır. Bu tip ile geçirilen eUserDataTypeparametresi IBCPSession::BCPColFmtole DB.

Dosya depolama türü

Ana bilgisayar dosyası veri türü

Kullanılmak üzere sqlncli.h yazınIBCPSession::BCPColFmt

Değer

DateTime

SQLDATETIME

BCP_TYPE_SQLDATETIME

0x3D

Smalldatetime

SQLDATETIM4

BCP_TYPE_SQLDATETIME4

0x3A =

Tarihi

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üştürmeleri

Aşağıdaki tablolarda dönüştürme bilgilerini sağlar.

ole db Not aşağıdaki dönüştürmeleri tarafından gerçekleştirilen IBCPSession. IRowsetFastLoadole db dönüşümleri için tanımlanan kullanır İstemciden sunucuya gerçekleştirilen dönüşümleri. DateTime değerleri 1 olarak yuvarlanır Not/300 saniye ve smalldatetime değerleri aşağıda açıklanan istemci dönüşümleri gerçekleştirdikten sonra sıfır saniye süresi vardır. DateTime yuvarlama, Saat ve dakika, ancak tarihi değil üzerinden yayar.

           -->

Kaynak

tarihi

Saat

smalldatetime

datetime

datetime2

datetimeoffset

char

wchar

Tarihi

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

DateTime

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 (zaman)

-

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 (datetime)

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

Semboller için anahtar

Simge

Anlamı

-

Dönüştürme desteklenir.

Bir odbc tanılama kaydı sqlstate 07006 ve "yasak veri türü özniteliği ihlali" iletisi oluşturulur.

1

Sağlanan veri geçerli değilse, bir odbc tanılama kaydı sqlstate 22007 ve "geçersiz bir datetime biçimi" iletisi ile oluşturulur. Hiçbir değişme-e doğru utc isteniyorsa bile datetimeoffset değerleri, utc, Dönüşüm sonra aralıkta saat bölümü olmalıdır. Bunun nedeni, her zaman tds ve sunucu için utc zaman datetimeoffset değerleri normale. Böylece istemci o zaman kontrol gerekir bileşenleridir sonra utc dönüştürme desteklenen aralığın içinde.

2

Saat bileşeni yok sayılır.

3

Kesme ile veri kaybı oluşursa, odbc için tanılama kaydı sqlstate 22001 ve 'String veri, doğru kesilir' iletisi oluşturulur Kesirli saniye basamak (ölçek), hedef sütunun boyutu aşağıdaki tabloya göre belirlenir. Tablo aralığı daha büyük sütun boyutlarını bir ölçek 7 açık. Bu dönüşüm için dokuz kesirli ikinci basamak, odbc tarafından izin verilen en yüksek'e kadar izin vermelidir.

TürZımni ölçek0Zımni ölçek1..7
DBTIME2810,16
DBTIMESTAMP1921..27
DBTIMESTAMPOFFSET2628..34

Kesme ile veri kaybı oluşursa, ole db için hata nakledilir. Datetime2 için kesirli saniye basamak (ölçek) hedef sütunun boyutu aşağıdaki tabloya göre belirlenir. Sütun boyutları daha büyük bir ölçek 9 tablo aralığı için açık. Bu dönüşüm için en çok dokuz kesirli ikinci basamak, ole db tarafından izin verilen en fazla izin vermelidir.

TürZımni ölçek0Zımni ölçek1..9
DBTIME281..9
DBTIMESTAMP1921..29
DBTIMESTAMPOFFSET2628..36

4

Tarih bileşeni yok sayılır.

5

The timezone utc (örneğin, 00: 00) ayarlayın.

6

Süre sıfır olarak ayarlanır.

7

Tarihi 1900-01-01 için ayarlanır.

8

Dilimimi uzaklık yoksayılır.

9

Dize ayrıştırılmış ve Tarih, datetime, datetimeoffset veya noktalama karakteri ile karşılaştı ve kalan bileşenleri varlığına bağlı zaman değeri dönüştürülür. Dize daha sonra bu işlem tarafından keşfedilen kaynak türü için bu konunun sonundaki tabloda kuralları aşağıdaki hedef türü dönüştürülür. Sağlanan verilerin hatasız, ayrıştırılamaz veya herhangi bir bileşeni izin verilen aralığın dışında yer alıyorsa veya hiçbir edebi türü dönüştürme hedef türü ise, bir hata (ole db) yayınlanan veya odbc tanılama kaydı sqlstate 22018 ve mesaj "ınvalid character value for cast specification" ile oluşturulur. Parametreler, datetime ve smalldatetime yıl aralığı dışında ise bu tür destek, hata (ole db) yayınlanan veya bir odbc tanılama kaydı sqlsate 22007 ve "geçersiz bir datetime biçimi" iletisi ile oluşturulur.

Hiçbir değişme-e doğru utc isteniyorsa bile datetimeoffset için dönüşüm için utc, sonra aralığında değeri olmalıdır. Bunun nedeni o zaman istemci doğrulaması gerekiyor bu yüzden tds ve sunucu her zaman datetimeoffset değerleri zaman utc için normale bileşenleridir sonra utc dönüştürme desteklenen aralığın içinde. Değeri desteklenen utc Aralık içinde değilse, bir hata (ole db) haberi ya da bir odbc tanılama kaydı sqlstate 22007 ve "geçersiz bir datetime biçimi" iletisi ile oluşturulur.

10

Kesme ile veri kaybı bir istemci sunucu değişme-e doğru olursa, bir hata (ole db) yayınlanan veya bir odbc tanılama kaydı sqlstate 22008 ve "Tarih Saat alanı taşması" iletisi ile oluşturulur. Değeri ile sunucu tarafından kullanılan utc aralığını temsil aralığın dışında kalırsa da bu hata oluşur. Saniye veya Kesirli saniye kesilme, bir sunucu istemci değişme-e doğru olursa, orada sadece bir uyarı vardır.

11

Kesme ile veri kaybı oluşursa, tanılama kaydı oluşturulur.

Sunucu-istemci dönüştürme üzerinde bir uyarı (odbc sqlstate S1000) budur.

Bir istemci-sunucu dönüştürmeyi, hatayla (odbc sqlstate 22001) budur.

12

Saniye sıfıra ayarlanır ve Kesirli saniye atılır. Kesme hata mümkündür.

Yok

Mevcut SQL Server 2005ve önceki davranış korunur.

Ayrıca bkz.

Kavramlar

Tarih/Saat (odbc) geliştirmeleri

Tarih/saat geliştirmeleri (ole db)