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