Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Anda dapat melakukan konversi runtime antara tipe data yang kompatibel dengan menggunakan fungsi CAST dan CONVERT.
Tipe data tertentu memerlukan konversi eksplisit ke tipe data lain menggunakan fungsi CAST atau CONVERT. Tipe data lainnya dapat dikonversi secara implisit, sebagai bagian dari perintah lain, tanpa menggunakan fungsi CAST atau CONVERT. Lihat .
PEMERAN
Anda dapat menggunakan dua bentuk sintaks yang setara untuk mentransmisikan ekspresi dari satu tipe data ke tipe data lainnya:
CAST ( expression AS type ) expression :: typePendapat
ekspresi
Ekspresi yang mengevaluasi ke satu atau lebih nilai, seperti nama kolom atau literal. Mengkonversi nilai null mengembalikan nulls. Ekspresi tidak dapat berisi string kosong atau kosong.
jenisSalah satu yang didukungJenis Data.
Jenis pengembalian
CAST mengembalikan tipe data yang ditentukan oleh jenis argumen.
Amazon Redshift mengembalikan kesalahan jika Anda mencoba melakukan konversi bermasalah seperti konversi DECIMAL berikut yang kehilangan presisi:
select 123.456::decimal(2,1);atau konversi INTEGER yang menyebabkan luapan:
select 12345678::smallint;MENGUBAH
Anda juga dapat menggunakan fungsi CONVERT untuk mengonversi nilai dari satu tipe data ke tipe data lainnya:
CONVERT ( type, expression )Pendapat
jenis
Salah satu yang didukungJenis Data.
ekspresiEkspresi yang mengevaluasi ke satu atau lebih nilai, seperti nama kolom atau literal. Mengkonversi nilai null mengembalikan nulls. Ekspresi tidak dapat berisi string kosong atau kosong.
Jenis pengembalian
CONVERT mengembalikan tipe data yang ditentukan oleh jenis argumen.
Contoh
Dua kueri berikut setara. Mereka berdua melemparkan nilai desimal ke integer:
Query berikut menggunakan fungsi CONVERT untuk mengembalikan hasil yang sama:
select convert(integer, pricepaid) from sales where salesid=100; pricepaid ----------- 162 (1 row)Dalam contoh ini, nilai-nilai dalam kolom timestamp dilemparkan sebagai tanggal:
select cast(saletime as date), salesid from sales order by salesid limit 10; saletime | salesid -----------+--------- 2008-02-18 | 1 2008-06-06 | 2 2008-06-06 | 3 2008-06-09 | 4 2008-08-31 | 5 2008-07-16 | 6 2008-06-26 | 7 2008-07-10 | 8 2008-07-22 | 9 2008-08-06 | 10 (10 rows)Dalam contoh ini, nilai-nilai dalam kolom tanggal dilemparkan sebagai cap waktu:
select cast(caldate as timestamp), dateid from date order by dateid limit 10; caldate | dateid --------------------+-------- 2008-01-01 00:00:00 | 1827 2008-01-02 00:00:00 | 1828 2008-01-03 00:00:00 | 1829 2008-01-04 00:00:00 | 1830 2008-01-05 00:00:00 | 1831 2008-01-06 00:00:00 | 1832 2008-01-07 00:00:00 | 1833 2008-01-08 00:00:00 | 1834 2008-01-09 00:00:00 | 1835 2008-01-10 00:00:00 | 1836 (10 rows)Dalam contoh ini, integer dilemparkan sebagai string karakter:
select cast(2008 as char(4)); bpchar -------- 2008Dalam contoh ini, nilai DECIMAL (6,3) dilemparkan sebagai nilai DECIMAL (4,1):
select 123.456::decimal(2,1);0Dalam contoh ini, kolom PRICEPAID (kolom DECIMAL (8,2)) dalam tabel PENJUALAN diubah menjadi kolom DECIMAL (38,2) dan nilainya dikalikan dengan 100000000000000000000.
select 123.456::decimal(2,1);1Anda tidak dapat melakukan operasi CAST atau CONVERT pada tipeselect 123.456::decimal(2,1);6 data untuk mengubahnya ke tipe data lain. Namun, Anda dapat memberikan representasi heksadesimal string literal dalam diperpanjang biner terkenal (EWKB) format sebagai masukan untuk fungsi yang menerimaselect 123.456::decimal(2,1);6 argumen. Misalnya,select 123.456::decimal(2,1);8 fungsi berikut mengharapkan tipeselect 123.456::decimal(2,1);6 data.
Pengetahuan tentang type data sangat penting diketahui oleh setiap programmer yang menggunakan database sebagai gudang data. Secara umum, setiap Database Management System (DBMS) menggunakan type data yang hampir sama. Baik itu mysql, oracle, mariaDB, mongoDB, SQLite, SQL Server, dan lainnya.
Tipe data adalah skema pengkodean rinci yang dikendalikan oleh DBMS untuk mempresentasikan data yang terorganisasi. Setiap data memiliki tipe data, beberapa tipe data sebagai berikut:
1. INT
INT merupakan type data angka (Integer) yang berukuran normal. Jangkauan nilainya adalah dari -21474883648 hingga 214783647.
2. BIGINT
Merupakan type data Integer (angka) yang berukuran besar. Jangkauan nilainya adalah dari -9223372036854775808 hingga 9223372036854775807.
3. SMALLINT
Merupakan type data Integer berukuran kecil. Jangkauannya dari
-32768 hingga 32767.
4. MEDIUMINT
Merupakan type data integer tingkat menengah. Jangkauannya adalah dari -8388608 hingga 8388607.
5. TINYINT
Merupakan type data integer yang berukuran sangat kecil. Jangkauannya adalah dari -128 hingga 127.
6. FLOAT
Merupakan type data untuk bilangan floating-point presisi tunggal. Jankauannya adalah dari -3.402823466E+38 hingga -1.175494351-38 untuk bilangan negatif. Untuk bilangan positif antara 0, dan 1.175494351-38hingga 3.402823466E+38.
7. DOUBLE
Merupakan type data untuk bilangan berkoma presisi ganda. Jankauannya adalah dari -1.7976931348623157E+308 hingga -2.2250738585072014E-308 untuk bilangan negatif. Untuk bilangan positif antara 0, dan 2.22507385855072014E-308 hingga 1.7976931348623157E+308.
8. DECIMAL
Bilangan decimal merupakan bilangan floating-point yang bersifat “unpacked”. Yang berarti bilangan disimpan sebagai string, menggunakan satu karakter untuk setiap digitnya. Jangkauan DECIMAL sama dengan DOUBLE.
9. NUMERIC
Type data numeric sama dengan DECIMAL.
10. DATE
Merupakan type data tanggal (date). Jika di MySQL berformat ‘YYYY-MM-DD’. Jangkauannya adalah antara nilai ‘1000-01-01’ hingga ‘9999-12-31’.
11. DATETIME
Kombinasi dari waktu (time) dan tanggal (date). Jika di MySQL berformat ‘YYYY-MM-DD HH:MM:SS’. Jangkauannya adalah dari ‘1000-01-01 00:00:00’ hingga ‘9999-12-31 23:59:59’.
Dapatkan diskon 75% paket hosting dan gratis domain + extra diskon 5% dengan menggunakan kupon: MFIKRI
Order Sekarang.!12. TIMESTAMP
Sebuah timestamp. Jangkauannya adalah dari ‘1970-01-01 00:00:00’ hingga suatu waktu di tahun 2037.
13. TIME
Tipe data waktu, jangkauannya adalah ‘-838:59:59’ hingga ‘838:59:59’. Time berformat ‘HH:MM:SS’.
14. YEAR
Angka tahun, dalam format 2 digit atau 4 digit (default 4 digit). Nilai yang mungkin adalah 1901 hingga 2155. ‘0000’ pada format 4 digit, dan 1970-2069 pada format 2 sigit (70-69).
15. CHAR
Merupakan type data string yang memiliki lebar tetap. Nilainya adalah dari 1 hingga 255 karakter. Jika ada sisa, maka sisa tersebut diisi dengan spasi. Dengan arti kata spasi dihitung sebagai karakter.
16. VARCHAR
Merupakan type data string yang memiliki lebar bervariasi. Nilainya adalah dari 1 hingga 255 karakter. Jika Anda mengset panjang karakternya 10 sedangkan data yang disimpan hanya terdiri dari 5 karakter, maka lebar data tersebut hanya 5 karakter saja. Degan arti kata spasi tidak dihitung sebagai karakter.
17. TINYBLOB dan TINYTEXT
Sebuah BLOB (catatan atau gambar) atau TEXT dengan lebar maksimum 255 (2^8 - 1) karakter.
18. BLOB dan TEXT
Sebuah BLOB atau TEXT dengan panjang karakter maksimum 65535 (2^16-1) karakter. BLOB atau TEXT mendukung untuk karakter unik seperti derajat celcius (°C), Gender Male (?) atau Female (?), dan karater unik lainnya.
19. MEDIUMBLOB dan MEDIUMTEXT
Sebuah BLOB atau TEXT dengan panjang karakter maksimum 16777215 (2^24 - 1) karakter.
20. LONGBLOB dan LONGTEXT
Sebuah BLOB atau TEXT dengan panjang karakter maksimum 4294967295 (2^32 - 1) karakter.
21. ENUM
Type data ini merupakan sebuah SET, yaitu objek string yang dapat memiliki 0 nilai atau lebih, yang harus diplih dari daftar nilai ‘value1’, ‘value2’, ...... Sebuah SET maksimum dapat menampung 64 anggota.