Aracılığıyla paylaş


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 konudaki bilgiler, ole db ve odbc içinde geçerli olan SQL Server yerel istemci.

Biçimi dosyaları

Ne biçim oluşturma dosyaları etkileşimli olarak aşağıdaki tablo tarih/saat türleri ve karşılık gelen ana bilgisayar dosyası veri türü adları belirtmek için kullanılan giriş açıklar.

Dosya depolama türü

Ana bilgisayar dosyası veri türü

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

Tarih saat

SQLDATETIME

d

Smalldatetime

SQLDATETIM4

D

Date

SQLDATE

de

Time

SQLTIME

SH

Datetime2

SQLDATETIME2

D2

Datetimeoffset

SQLDATETIMEOFFSET

yapın

xml biçim dosyası xsd aşağıdaki eklemeler vardı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>

Karakter veri dosyası

Karakter veri dosyalarında, tarih ve saat değerleri konusunda açıklandığı gibi temsil edilir "veri formatları: Dizeler ve rakamları" kısmında odbc tarih/saat geliştirmeleri için veri türü desteği için odbc veya, ole db tarih/saat geliştirmeleri için veri türü desteği için ole db.

Yerel veri dosyaları içinde kendi tds gösterimleri 7 ölçekli dört yeni türleri için tarih ve saat değerleri gösterilir (tarafından desteklenen en çok çünkü bu SQL Server ve bcp veri dosyalarını bu sütun ölçeği saklamak).Var olan depolama için herhangi bir değişiklik olmaz datetime ve smalldatetime türü veya bunların tablo verisi akışı (tds) sunumu.

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

Dosya depolama türü

Depolama boyutu bayt

datetime

8

smalldatetime

4

tarih

3

saat

6

datetime2

9

datetimeoffset

11

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

Dosya depolama türü

Depolama boyutu bayt

Depolama biçimi

DateTime (d)

8

TDS

smalldatetime (d)

4

TDS

Tarih (de)

3

TDS

saat (sh)

6

TDS

datetime2 (d2)

9

TDS

datetimeoffset (do)

11

TDS

Sqlncli.h bcp türleri

Sqlncli.h odbc için bcp API uzantıları ile kullanılmak üzere aşağıdaki türleri tanımlanmıştır.Bu türler ile geçirilen eUserDataType parametresi IBCPSession::BCPColFmt ole db.

Dosya depolama türü

Ana bilgisayar dosyası veri türü

İle kullanılmak üzere sqlncli.h yazın IBCPSession::BCPColFmt

Değer

Tarih saat

SQLDATETIME

BCP_TYPE_SQLDATETIME

0x3D

Smalldatetime

SQLDATETIM4

BCP_TYPE_SQLDATETIME4

0x3a

Date

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 Note   The following conversions are performed by IBCPSession.IRowsetFastLoad uses OLE DB conversions as defined in İstemciden sunucuya gerçekleştirilen dönüşümleri.DateTime değerleri 1 olarak yuvarlanır unutmayın/300th saniye ve smalldatetime değerleri olan saniye küme aşağıda açıklanan istemci dönüşümleri gerçekleştirdikten sonra sıfır.DateTime yuvarlama, saat ve dakika, ancak tarih yayar.

-->

Dan

tarih

saat

smalldatetime

datetime

datetime2

datetimeoffset

Karakter

wchar

Date

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

Simge anahtarı

Simge

Anlamı

-

Dönüştürme desteklenir.

Bir odbc tanılama kaydı sqlstate 07006 ve ileti "Yasak veri türü öznitelik ihlali" ile oluşturulur.

1

Sağlanan verilerin geçerli değilse, bir odbc tanılama kaydı sqlstate 22007 ve "geçersiz bir datetime biçimi" iletisi ile oluşturulur.Datetimeoffset değerleri, saat bölümü içinde olmalıdır aralık sonra utc utc için dönüştürme istenen bile dönüştürme.tds ve sunucu için utc saat datetimeoffset değerleri her saat normalize olmasıdır.Böylece istemci, o saat kontrol gerekir 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 kaydı sqlstate 22001 ve 'sağ dize veri kesildi' iletisi ile oluşturulur Kesirli saniye basamak (Ölçek) hedef sütunun boyutuna göre aşağıdaki tarafından belirlenen tablo.Tablo aralık büyük sütun boyutları için 7 ölçeğini de kullanılmış olur.Bu dönüşüm için en çok dokuz kesirli ikinci basamak, odbc tarafından izin verilen en fazla izin vermelisiniz.

TürÖrtük ölçek0Örtük ö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 boyutuna göre aşağıdaki tarafından belirlenir tablo.Sütun boyutları daha büyük bir ölçek 9 Tablo aralık için ima.Bu dönüşüm için en çok dokuz kesirli ikinci basamak, ole db tarafından izin verilen en fazla izin vermelisiniz.

TürÖrtük ölçek0Örtük ölçek1..9
DBTIME281..9
DBTIMESTAMP1921..29
DBTIMESTAMPOFFSET2628..36

4

Tarih bileşeni yok sayılır.

5

Timezone utc (örneğin, 00: 00) küme.

6

saat Sıfır olarak küme.

7

1900-01-01 Tarih küme.

8

Saat dilimi uzaklığı göz ardı edilir.

9

Dize ayrıştırılır ve tarih, datetime, datetimeoffset veya noktalama karakteri ile karşılaştı ve kalan bileşenleri varlığını ilk bağlı saat değeri dönüştürülür.Dize daha sonra dönüştürülür hedef türü, bu işlem tarafından keşfedilen kaynak türü için bu konunun sonundaki tabloda kurallara.Sağlanan verilerin hatasız ayrıştırılamaz veya dışında herhangi bir bileşen bölümü ise aralık izin verilen ya da hiç dönüştürmeye hazır bilgi türünden hedef türü ise, bir hata (ole db) deftere nakledildiği veya bir odbc tanılama kaydı sqlstate 22018 ve "Invalid character value for cast specification" iletisi ile oluşturulur.Datetime ve smalldatetime parametrelerinin dışında yıl ise aralık bu tür destekler, bir hata (ole db) deftere nakledildiği veya bir odbc tanılama kaydı sqlsate 22007 ve "geçersiz bir datetime biçimi" iletisi ile oluşturulur.

Dönüştürme için utc istemiş olsanız bile datetimeoffset için değer aralık içinde utc, dönüştürme sonrasında olması gerekir.Bunun nedeni, istemci bu süre doğrulamanız gerekir böylece tds ve sunucu her saat saat datetimeoffset değerleri, utc normalize bileşenleridir içinde aralık utc dönüştürme sonra desteklenen.Değer içinde desteklenen utc ise, aralık, bir hata (ole db) deftere nakledildiği veya bir odbc tanılama kaydı sqlstate 22007 ve "geçersiz bir datetime biçimi" iletisi ile oluşturulur.

10

Üzerinde kesme ile veri kaybı oluşursa, bir istemci server dönüştürme hata (ole db) deftere nakledildiği veya bir odbc tanılama kaydı sqlstate 22008 ve "Tarih saat alan taşması" iletisi ile oluşturulur.Değer sunucu tarafından kullanılan utc aralık tarafından temsil edilebilir aralığın dışında kalırsa, bu hata da oluşur.Saniye veya Kesirli saniye kesilme bir sunucu için istemci dönüştürme ortaya çıkarsa, bir uyarı vardır.

11

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

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

Bir istemci-sunucu dönüştürme üzerinde bir hata (odbc sqlstate 22001) budur.

12

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

Yok

Var olan SQL Server 2005 ve önceki davranış saklanır.