Aturan konversi jenis data untuk dwloader - Analytics Platform Service (PDW)
Artikel ini menjelaskan format data input dan konversi jenis data implisit yang didukung dwloader Command-Line Loader saat memuat data ke PDW. Konversi data implisit terjadi ketika data input tidak cocok dengan jenis data dalam tabel target SQL Server PDW. Gunakan informasi ini saat merancang proses pemuatan Anda untuk memastikan data Anda akan berhasil dimuat ke SQL Server PDW.
Sisipkan Literal ke dalam Jenis Biner
Tabel berikut menentukan jenis literal, format, dan aturan konversi yang diterima untuk memuat nilai harfiah ke dalam kolom PDW SQL Server jenis biner (n) atau varbinary(n).
Jenis Data Input | Contoh Data Input | Konversi ke Tipe Data biner atau varbinary |
---|---|---|
Literal biner | [0x]hexidecimal_string Contoh: 12Ef atau 0x12Ef |
Awalan 0x bersifat opsional. Panjang sumber data tidak boleh melebihi jumlah byte yang ditentukan untuk jenis data. Jika panjang sumber data kurang dari ukuran jenis data biner , data diisi ke kanan dengan nol untuk mencapai ukuran jenis data. |
Sisipkan Literal ke dalam Jenis Tanggal dan Waktu
Literal tanggal dan waktu diwakili dengan menggunakan literal string dalam format tertentu, diapit dalam tanda kutip tunggal. Tabel berikut menentukan jenis literal, format, dan aturan konversi yang diizinkan untuk memuat tanggal atau waktu harfiah ke dalam kolom jenis datetime, smalldatetime, date, time, datetimeoffset, atau datetime2. Tabel menentukan format default untuk jenis data yang diberikan. Format lain yang dapat ditentukan ditentukan di bagian Format TanggalWaktu. Literal tanggal dan waktu tidak dapat menyertakan spasi di depan atau di belakang. nilai tanggal, smalldatetime, dan null tidak dapat dimuat dalam mode lebar tetap.
Jenis Data tanggalwaktu
Tabel berikut menentukan format dan aturan default untuk memuat nilai harfiah ke dalam kolom jenis tanggalwaktu. String kosong ('') dikonversi ke nilai default '1900-01-01 12:00:00.000'. String yang hanya berisi kosong (' ') menghasilkan kesalahan.
Jenis Data Input | Contoh Data Input | Konversi ke Jenis Data tanggalwaktu |
---|---|---|
String literal dalam format datetime | 'yyyy-MM-dd hh:mm:ss[.fff]' Contoh: '2007-05-08 12:35:29.123' |
Digit pecahan yang hilang diatur ke 0 saat nilai disisipkan. Misalnya, literal '2007-05-08 12:35' dimasukkan sebagai '2007-05-08 12:35:00.000'. |
String literal dalam format smalldatetime | 'yyyy-MM-dd hh:mm' Contoh: '2007-05-08 12:35' |
Detik dan digit pecahan yang tersisa diatur ke 0 saat nilai disisipkan. |
String literal dalam format tanggal | 'yyyy-MM-dd' Contoh: '2007-05-08' |
Nilai waktu (jam, menit, detik, dan pecahan) diatur ke 12:00:00.000 saat nilai dimasukkan. |
String literal dalam format datetime2 | 'yyyy-MM-dd hh:mm:ss.fffffff' Contoh: '2007-05-08 12:35:29.1234567' |
Data sumber tidak boleh melebihi tiga digit pecahan. Misalnya, literal '2007-05-08 12:35:29.123' akan dimasukkan, tetapi nilai '2007-05-8 12:35:29.1234567' menghasilkan kesalahan. |
Jenis Data smalldatetime
Tabel berikut menentukan format dan aturan default untuk memuat nilai harfiah ke dalam kolom jenis smalldatetime. String kosong ('') dikonversi ke nilai default '1900-01-01 12:00'. String yang hanya berisi kosong (' ') menghasilkan kesalahan.
Jenis Data Input | Contoh Data Input | Konversi ke Tipe Data smalldatetime |
---|---|---|
String literal dalam format smalldatetime | 'yyyy-MM-dd hh:mm' atau 'yyyy-MM-dd hh:mm:ss' Contoh: '2007-05-08 12:00' atau '2007-05-08 12:00:15' |
Data sumber harus memiliki nilai untuk tahun, bulan, tanggal, jam, dan menit. Detik bersifat opsional dan, jika ada, harus diatur ke nilai 00. Nilai lain menghasilkan kesalahan. Detik bersifat opsional. Saat memuat ke dalam kolom smalldatetime, dwloader akan membulatkan ke atas detik dan detik pecahan. Misalnya, 1999-01-05 20:10:35.123 akan dimuat sebagai 01-05 20:11. |
String literal dalam format tanggal | 'yyyy-MM-dd' Contoh: '2007-05-08' |
Nilai waktu (jam, menit, detik, dan pecahan) diatur ke 0 saat nilai disisipkan. |
Tipe Data Tanggal
Tabel berikut menentukan format dan aturan default untuk memuat nilai harfiah ke dalam kolom jenis tanggal. String kosong ('') dikonversi ke nilai default '1900-01-01'. String yang hanya berisi kosong (' ') menghasilkan kesalahan.
Jenis Data Input | Contoh Data Input | Konversi ke Tipe Data tanggal |
---|---|---|
String literal dalam format tanggal | 'yyyy-MM-dd' Contoh: '2007-05-08' |
Jenis Data Waktu
Tabel berikut menentukan format dan aturan default untuk memuat nilai harfiah ke dalam kolom waktu jenis. String kosong ('') dikonversi ke nilai default '00:00:00.0000'. String yang hanya berisi kosong (' ') menghasilkan kesalahan.
Jenis Data Input | Contoh Data Input | Konversi ke Jenis Data waktu |
---|---|---|
String literal dalam format waktu | 'hh:mm:ss.fffffff' Contoh: '12:35:29.1234567' |
Jika sumber data memiliki presisi yang lebih kecil atau sama dengan (jumlah digit pecahan) daripada presisi jenis data waktu , data diisi ke kanan dengan nol. Misalnya, nilai harfiah '12:35:29.123' dimasukkan sebagai '12:35:29.1230000'. |
Jenis Data datetimeoffset
Tabel berikut menentukan format dan aturan default untuk memuat nilai harfiah ke dalam kolom jenis datetimeoffset (n). Format defaultnya adalah 'yyyy-MM-dd hh:mm:ss.fffffff {+|-}hh:mm'. String kosong ('') dikonversi ke nilai default '1900-01-01 12:00:00.0000000 +00:00'. String yang hanya berisi kosong (' ') menghasilkan kesalahan. Jumlah digit pecahan tergantung pada definisi kolom. Misalnya, kolom yang didefinisikan sebagai datetimeoffset (2) akan memiliki dua digit pecahan.
Jenis Data Input | Contoh Data Input | Konversi ke Jenis Data datetimeoffset |
---|---|---|
String literal dalam format datetime | 'yyyy-MM-dd hh:mm:ss[.fff]' Contoh: '2007-05-08 12:35:29.123' |
Digit pecahan dan nilai offset yang hilang diatur ke 0 saat nilai disisipkan. Misalnya, literal '2007-05-08 12:35:29.123' dimasukkan sebagai '2007-05-08 12:35:29.1230000 +00:00'. |
String literal dalam format smalldatetime | 'yyyy-MM-dd hh:mm' Contoh: '2007-05-08 12:35' |
Detik, digit pecahan dan nilai offset yang tersisa diatur ke 0 saat nilai disisipkan. |
String literal dalam format tanggal | 'yyyy-MM-dd' Contoh: '2007-05-08' |
Nilai waktu (jam, menit, detik, dan pecahan) diatur ke 0 saat nilai disisipkan. Misalnya, literal '2007-05-08' dimasukkan sebagai '2007-05-08 00:00:00.0000000 +00:00'. |
String literal dalam format datetime2 | 'yyyy-MM-dd hh:mm:ss.fffffff' Contoh: '2007-05-08 12:35:29.1234567' |
Data sumber tidak boleh melebihi jumlah detik pecahan yang ditentukan di kolom datetimeoffset. Jika sumber data memiliki jumlah detik pecahan yang lebih kecil atau sama, data diisi ke kanan dengan nol. Misalnya, jika jenis data adalah datetimeoffset (5), nilai harfiah '2007-05-08 12:35:29.123 +12:15' dimasukkan sebagai '12:35:29.12300 +12:15'. |
String literal dalam format datetimeoffset | 'yyyyy-MM-dd hh:mm:ss.fffffff {+|-} hh:mm' Contoh: '2007-05-08 12:35:29.1234567 +12:15' |
Data sumber tidak boleh melebihi jumlah detik pecahan yang ditentukan di kolom datetimeoffset. Jika sumber data memiliki jumlah detik pecahan yang lebih kecil atau sama, data diisi ke kanan dengan nol. Misalnya, jika jenis data adalah datetimeoffset (5), nilai harfiah '2007-05-08 12:35:29.123 +12:15' dimasukkan sebagai '12:35:29.12300 +12:15'. |
Jenis Data datetime2
Tabel berikut menentukan format dan aturan default untuk memuat nilai harfiah ke dalam kolom jenis datetime2 (n). Format defaultnya adalah 'yyyy-MM-dd hh:mm:ss.fffffff'. String kosong ('') dikonversi ke nilai default '1900-01-01 12:00:00'. String yang hanya berisi kosong (' ') menghasilkan kesalahan. Jumlah digit pecahan tergantung pada definisi kolom. Misalnya, kolom yang didefinisikan sebagai datetime2 (2) akan memiliki dua digit pecahan.
Jenis Data Input | Contoh Data Input | Konversi ke Tipe Data datetime2 |
---|---|---|
String literal dalam format datetime | 'yyyy-MM-dd hh:mm:ss[.fff]' Contoh: '2007-05-08 12:35:29.123' |
Detik pecahan bersifat opsional dan diatur ke 0 saat nilai disisipkan. |
String literal dalam format smalldatetime | 'yyyy-MM-dd hh:mm' Contoh: '2007-05-08 12' |
Detik opsional dan digit pecahan yang tersisa diatur ke 0 saat nilai disisipkan. |
String literal dalam format tanggal | 'yyyy-MM-dd' Contoh: '2007-05-08' |
Nilai waktu (jam, menit, detik, dan pecahan) diatur ke 0 saat nilai disisipkan. Misalnya, literal '2007-05-08' dimasukkan sebagai '2007-05-08 12:00:00.0000000'. |
String literal dalam format datetime2 | 'yyyy-MM-dd hh:mm:ss:fffffff' Contoh: '2007-05-08 12:35:29.1234567' |
Jika sumber data berisi komponen data dan waktu yang kurang dari atau sama dengan nilai yang ditentukan dalam datetime2(n), data dimasukkan; jika tidak, kesalahan akan dihasilkan. |
Format DateTime
Dwloader mendukung format data berikut untuk data input yang dimuat ke SQL Server PDW. Detail selengkapnya tercantum setelah tabel.
datetime | smalldatetime | date | tanggalwaktu2 | tanggalwaktulewat |
---|---|---|---|---|
[M[M]] M-[d]d-[yy]yy HH:mm:ss[.fff] | [M[M]] M-[d]d-[yy]yy HH:mm[:00] | [M[M]] M-[d]d-[yy]yy | [M[M]] M-[d]d-[yy]yy HH:mm:ss[.fffffff] | [M[M]] M-[d]d-[yy]yy HH:mm:ss[.fffffff] zzz |
[M[M]] M-[d]d-[yy]yy hh:mm:ss[.fff][tt] | [M[M]] M-[d]d-[yy]yy hh:mm[:00][tt] | [M[M]] M-[d]d-[yy]yy hh:mm:ss[.fffffff][tt] | [M[M]] M-[d]d-[yy]yy hh:mm:ss[.fffffff][tt] zzz | |
[M[M]] M-[yy]yy-[d]d HH:mm:ss[.fff] | [M[M]] M-[yy]yy-[d]d HH:mm[:00] | [M[M]] M-[yy]yy-[d]d | [M[M]] M-[yy]yy-[d]d HH:mm:ss[.fffffff] | [M[M]] M-[yy]yy-[d]d HH:mm:ss[.fffffff] zzz |
[M[M]] M-[yy]yy-[d]d hh:mm:ss[.fff][tt] | [M[M]] M-[yy]yy-[d]d hh:mm[:00][tt] | [M[M]] M-[yy]yy-[d]d hh:mm:ss[.fffffff][tt] | [M[M]] M-[yy]yy-[d]d hh:mm:ss[.fffffff][tt] zzz | |
[yy]yy-[M[M]]M-[d]d HH:mm:ss[.fff] | [yyy]yy-[M[M]]M-[d]d HH:mm[:00] | [yyy]yy-[M[M]]M-[d]d | [yy]yy-[M[M]]M-[d]d HH:mm:ss[.fffffff] | [yy]yy-[M[M]]M-[d]d HH:mm:ss[.fffffff] zzz |
[yy]yy-[M[M]]M-[d]d hh:mm:ss[.fff][tt] | [yy]yy-[M[M]]M-[d]d hh:mm[:00][tt] | [yyy]yy-[M[M]]M-[d]d hh:mm:ss[.fffffff][tt] | [yyy]yy-[M[M]]M-[d]d hh:mm:ss[.fffffff][tt] zzz | |
[yy]yy-[d]d-[M[M]]]M HH:mm:ss[.fff] | [yy]yy-[d]d-[M[M]]]M HH:mm[:00] | [yyy]yy-[d]d-[M[M]]]M | [yy]yy-[d]d-[M[M]]]M HH:mm:ss[.fffffff] | [yy]yy-[d]d-[M[M]]M HH:mm:ss[.fffffff] zzz |
[yy]yy-[d]d-[M[M]]]M hh:mm:ss[.fff][tt] | [yy]yy-[d]d-[M[M]]M hh:mm[:00][tt] | [yy]yy-[d]d-[M[M]]M hh:mm:ss[.fffffff][tt] | [yy]yy-[d]d-[M[M]]]M hh:mm:ss[.fffffff][tt] zzz | |
[d]d-[M[M]]M-[yy]yy HH:mm:ss[.fff] | [d]d-[M[M]]M-[yy]yy HH:mm[:00] | [d]d-[M[M]]M-[yy]yy | [d]d-[M[M]]M-[yy]yy HH:mm:ss[.fffffff] | [d]d-[M[M]]M-[yy]yy HH:mm:ss[.fffffff] zzz |
[d]d-[M[M]]M-[yy]yy hh:mm:ss[.fff][tt] | [d]d-[M[M]]M-[yy]yy hh:mm[:00][tt] | [d]d-[M[M]]M-[yy]yy hh:mm:ss[.fffffff][tt] | [d]d-[M[M]]M-[yy]yy hh:mm:ss[.fffffff][tt] zzz | |
[d]d-[yy]yy-[M[M]]]M HH:mm:ss[.fff] | [d]d-[yy]yy-[M[M]]]M HH:mm[:00] | [d]d-[yy]yy-[M[M]]]M | [d]d-[yy]yy-[M[M]]]M HH:mm:ss[.fffffff] | [d]d-[yy]yy-[M[M]]]M HH:mm:ss[.fffffff] zzz |
[d]d-[yy]yy-[M[M]]M hh:mm:ss[.fff][tt] | [d]d-[yy]yy-[M[M]]M hh:mm[:00][tt] | [d]d-[yy]yy-[M[M]]M hh:mm:ss[.fffffff][tt] | [d]d-[yy]yy-[M[M]]]M hh:mm:ss[.fffffff][tt] zzz |
Detail:
Untuk memisahkan nilai bulan, hari, dan tahun, Anda dapat menggunakan ' - ', ' / ', atau ' . '. Untuk kesederhanaan, tabel hanya menggunakan pemisah ' - '.
Untuk menentukan bulan sebagai teks, gunakan tiga karakter atau lebih. Bulan dengan 1 atau 2 karakter ditafsirkan sebagai angka.
Untuk memisahkan nilai waktu, gunakan simbol ' : ' .
Huruf yang diapit dalam tanda kurung siku bersifat opsional.
Huruf 'tt' menunjuk
AM|PM|am|pm
. AM adalah default. Ketika 'tt' ditentukan, nilai jam (hh) harus dalam rentang 0 hingga 12.Huruf 'zzz' menunjuk offset zona waktu untuk zona waktu sistem saat ini dalam format
{+|-}HH:ss]
.
Sisipkan Literal ke dalam Jenis Numerik
Tabel berikut menentukan format default dan aturan konversi untuk memuat nilai harfiah ke dalam kolom PDW SQL Server yang menggunakan jenis numerik.
Tipe Data Bit
Tabel berikut menentukan format dan aturan default untuk memuat nilai harfiah ke dalam kolom jenis bit. String kosong ('') atau string yang hanya berisi kosong (' ') dikonversi menjadi 0.
Jenis Data Input | Contoh Data Input | Konversi ke Tipe Data bit |
---|---|---|
String literal dalam format bilangan bulat | 'ffffffffffff' Contoh: '1' atau '321' |
Nilai bilangan bulat yang diformat sebagai string literal tidak boleh berisi nilai negatif. Misalnya, nilai '-123' menghasilkan kesalahan. Nilai yang lebih besar dari 1 dikonversi menjadi 1. Misalnya, nilai '123' dikonversi menjadi 1. |
String literal | 'TRUE' atau 'FALSE' Contoh: 'true' |
Nilai 'TRUE' dikonversi menjadi 1; nilai 'FALSE' dikonversi ke 0. |
Bilangan bulat harfiah | fffffffn Contoh: 1 atau 321 |
Nilai yang lebih besar dari 1 atau kurang dari 0 dikonversi menjadi 1. Misalnya, nilai 123 dan -123 dikonversi menjadi 1. |
Literal desimal | fffnn.fffn Contoh: 1234.5678 |
Nilai yang lebih besar dari 1 atau kurang dari 0 dikonversi menjadi 1. Misalnya, nilai 123.45 dan -123.45 dikonversi menjadi 1. |
Tipe Data Desimal
Tabel berikut menentukan aturan untuk memuat nilai harfiah ke dalam kolom desimal jenis (p,s). Aturan konversi data sama dengan untuk SQL Server. Untuk informasi selengkapnya, lihat Konversi Tipe Data (Mesin Database) di MSDN.
Jenis Data Input | Contoh Data Input |
---|---|
Bilangan bulat harfiah | 321312313123 |
Literal desimal | 123344.34455 |
jenis data float dan riil
Tabel berikut mendefinisikan aturan untuk memuat nilai harfiah ke dalam kolom jenis float atau nyata. Aturan konversi data sama dengan untuk SQL Server. Untuk informasi selengkapnya, lihat Konversi Tipe Data (Mesin Database) di MSDN.
Jenis Data Input | Contoh Data Input |
---|---|
Bilangan bulat harfiah | 321312313123 |
Literal desimal | 123344.34455 |
Harfiah titik mengambang | 3.12323E+14 |
jenis data int, bigint, tinyint, smallint
Tabel berikut menentukan aturan untuk memuat nilai harfiah ke dalam kolom jenis int, bigint, tinyint, atau smallint. Sumber data tidak boleh melebihi rentang yang diizinkan untuk jenis data yang diberikan. Misalnya, rentang untuk tinyint adalah 0 hingga 255 dan rentang untuk int adalah -2.147.483.648 hingga 2.147.483.647.
Jenis Data Input | Contoh Data Input | Konversi ke jenis data Bilangan Bulat |
---|---|---|
Bilangan bulat harfiah | 321312313123 | |
Literal desimal | 123344.34455 | Nilai di sebelah kanan titik desimal dipotong. |
jenis data uang dan smallmoney
Nilai literal uang direpresentasikan sebagai string angka dengan titik desimal opsional dan simbol mata uang opsional sebagai awalan. Sumber data tidak boleh melebihi rentang yang diizinkan untuk jenis data yang diberikan. Misalnya, rentang untuk smallmoney adalah -214,748.3648 hingga 214,748.3647 dan rentang untuk uang adalah -922,337.203.685.477,5808 menjadi 922.337.203.685.477,5807. Tabel berikut mendefinisikan aturan untuk memuat nilai harfiah ke dalam kolom jenis uang atau smallmoney.
Jenis Data Input | Contoh Data Input | Konversi Ke Uang atau Jenis Data Smallmoney |
---|---|---|
Bilangan bulat harfiah | 321312 | Digit yang hilang setelah titik desimal diatur ke 0 saat nilai disisipkan. Misalnya, literal 12345 dimasukkan sebagai 12345.0000 |
Literal desimal | 123344.34455 | Jika jumlah digit setelah titik desimal melebihi 4, nilai dibulatkan ke atas ke nilai terdekat. Misalnya, nilai 123344.34455 dimasukkan sebagai 123344.3446. |
Uang harfiah | $123456.7890 | Simbol mata uang tidak disisipkan dengan nilai . Jika jumlah digit setelah titik desimal melebihi 4, nilai dibulatkan ke atas ke nilai terdekat. |
Sisipkan Literal ke dalam Jenis String
Tabel berikut menentukan format default dan aturan konversi untuk memuat nilai harfiah ke dalam kolom SQL Server PDW yang menggunakan jenis string.
jenis data char, varchar, nchar, dan nvarchar
Tabel berikut menentukan format dan aturan default untuk memuat nilai harfiah ke dalam kolom jenis karakter, varchar, nchar, dan nvarchar. Panjang sumber data tidak boleh melebihi ukuran yang ditentukan untuk jenis data. Jika panjang sumber data kurang dari ukuran tipe data karakter atau nchar , data diisi ke kanan dengan spasi kosong untuk mencapai ukuran jenis data.
Jenis Data Input | Contoh Data Input | Konversi ke jenis data Karakter |
---|---|---|
String literal | Format: 'string karakter' Contoh: 'abc' |
NA |
Untai (karakter) unicode literal | Format: N'character string' Contoh: N'abc' |
NA |
Bilangan bulat harfiah | Format: ffffffffffn Contoh: 321312313123 |
NA |
Literal desimal | Format: ffffff.fffffff Contoh: 12344.34455 |
NA |
Uang harfiah | Format: $ffffff.fffnn Contoh: $123456.99 |
Simbol mata uang opsional tidak disisipkan dengan nilai . Untuk menyisipkan simbol mata uang, sisipkan nilai sebagai string literal. Ini akan cocok dengan format loader, yang memperlakukan setiap literal sebagai string literal. Koma tidak diperbolehkan. Jika jumlah digit setelah titik desimal melebihi 2, nilai dibulatkan ke atas ke nilai terdekat. Misalnya, nilai 123.946789 dimasukkan sebagai 123,95. Hanya gaya default 0 (tanpa koma dan 2 digit setelah titik desimal) yang diizinkan saat menggunakan fungsi CONVERT untuk memasukkan uang harfiah. |
Keterangan Umum
dwloader melakukan konversi implisit yang sama dengan yang dilakukan SMP SQL Server, tetapi tidak mendukung semua konversi implisit yang didukung SMP SQL Server.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk