Di SQL Server, Anda dapat menggunakan CAST()
berfungsi untuk mengubah ekspresi dari satu tipe data ke tipe data lainnya. Fungsi ini bekerja hampir sama dengan CONVERT()
fungsi, kecuali bahwa sintaksnya sedikit berbeda (dan CAST()
tidak menerima style
argumen).
Jadi, jika Anda perlu mengonversi string ke nilai tanggal/waktu, Anda dapat menggunakan CONVERT()
fungsi atau CAST()
fungsi.
Dan jika Anda mendapatkan kesalahan saat menggunakan kedua fungsi tersebut, PARSE()
fungsi mungkin yang Anda butuhkan.
Artikel ini berisi contoh penggunaan CAST()
fungsi.
Sintaks
Sintaksnya seperti ini:
CAST ( expression AS data_type [ ( length ) ] )
Argumen ini didefinisikan sebagai berikut:
expression
- Ekspresi apa pun yang valid.
data_type
- Tipe data target. Ini termasuk xml , besar , dan sql_variant . Tipe data alias tidak dapat digunakan.
length
- Integer opsional yang menentukan panjang tipe data target. Nilai defaultnya adalah
30
.
Contoh 1 – Konversi ke Tipe Data tanggal
Dalam contoh ini, kami mengonversi string menjadi tanggal tipe data (kami menentukan ini dengan menggunakan date
sebagai argumen kedua).
SELECT CAST('20 Dec 2018' AS date) AS Result;
Hasil:
+------------+ | Result | |------------| | 2018-12-20 | +------------+
Sama seperti dengan CONVERT()
string harus dalam gaya yang dapat dikonversi ke tipe data yang ditentukan, jika tidak, Anda akan mendapatkan kesalahan:
SELECT CAST('Homer' AS date) AS Result;
Hasil:
Conversion failed when converting date and/or time from character string.
Contoh 2 – Konversi ke Tipe Data datetime
Dalam contoh ini kita mengonversi ke datetime tipe data:
SELECT CAST('20 Dec 2018' AS datetime) AS Result;
Hasil:
+-------------------------+ | Result | |-------------------------| | 2018-12-20 00:00:00.000 | +-------------------------+
Anda juga dapat menentukan waktu bersama dengan tanggal:
SELECT CAST('2pm 20 Dec 2018' AS datetime) AS Result;
Hasil:
+-------------------------+ | Result | |-------------------------| | 2018-12-20 14:00:00.000 | +-------------------------+
Contoh 3 – Konversi ke Tipe Data datetime2
Di sini kami mengonversi ke datetime2 tipe data:
SELECT CAST('20 Dec 2018' AS datetime2) AS Result;
Hasil:
+-----------------------------+ | Result | |-----------------------------| | 2018-12-20 00:00:00.0000000 | +-----------------------------+
Contoh 4 – Konversi ke Tipe Data datetimeoffset
Dalam contoh ini kami mengonversi ke datetimeoffset tipe data:
SELECT CAST('20 Dec 2018' AS datetimeoffset) AS Result;
Hasil:
+------------------------------------+ | Result | |------------------------------------| | 2018-12-20 00:00:00.0000000 +00:00 | +------------------------------------+
Contoh 5 – Konversikan ke Tipe Data waktu tanggal kecil
Di sini kami mengonversi ke waktu kecil tipe data:
SELECT CAST('20 Dec 2018' AS smalldatetime) AS Result;
Hasil:
+---------------------+ | Result | |---------------------| | 2018-12-20 00:00:00 | +---------------------+
Contoh 6 – Konversikan ke Tipe Data waktu
Dalam contoh ini kita mengonversi ke waktu tipe data:
SELECT CAST('20 Dec 2018' AS time) AS Result;
Hasil:
+----------+ | Result | |----------| | 00:00:00 | +----------+
Dalam hal ini, kami menetapkan tanggal tetapi bukan waktu, sehingga kembali sebagai 00:00:00
. Berikut contoh lain di mana kami benar-benar menentukan waktu:
SELECT CAST('2pm' AS time) AS Result;
Hasil:
+----------+ | Result | |----------| | 14:00:00 | +----------+
Tetapi jika kita menambahkan tanggal, kita mendapatkan kesalahan (tidak seperti contoh sebelumnya ketika kita mengonversi ke datetime ):
SELECT CAST('2pm 20 Dec 2018' AS time) AS Result;
Hasil:
Conversion failed when converting date and/or time from character string.
Jadi dalam hal ini Anda harus mengonversi ke datetime atau waktu kecil .
Contoh 7 – Menghilangkan Tanggal
Jika Anda menghilangkan tanggal saat mengonversi ke waktu tanggal atau waktu kecil jenis data, itu akan mengembalikan 1900-01-01
sebagai tanggal:
SELECT CAST('2pm' AS datetime) AS Result;
Hasil:
+-------------------------+ | Result | |-------------------------| | 1900-01-01 14:00:00.000 | +-------------------------+
Jika Anda lebih suka menggunakan untuk menggunakan CONVERT()
fungsi, lihat string ini ke tanggal/waktu CONVERT()
contoh menggunakan contoh yang sama seperti di atas.
Juga, seperti yang disebutkan, jika Anda mendapatkan kesalahan saat mencoba mengonversi string menjadi tanggal, coba PARSE()
fungsi sebagai gantinya. Ini akan berfungsi dalam beberapa kasus di mana CAST()
tidak.