Bagikan melalui


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.