Di SQL Server, Anda dapat menggunakan CONVERT()
berfungsi untuk mengubah ekspresi dari satu tipe data ke tipe data lainnya. Oleh karena itu, jika Anda perlu mengonversi string ke format tanggal/waktu, fungsi ini dapat membantu.
Artikel ini berisi contoh untuk mendemonstrasikan penggunaannya.
Sintaks
Sintaksnya seperti ini:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
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
. style
- Sebuah ekspresi integer yang menentukan bagaimana
CONVERT()
fungsi akan menerjemahkan ekspresi . Untuk nilai gaya NULL, NULL dikembalikan. tipe_data menentukan jangkauan.
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 pertama).
SELECT CONVERT(date, '20 Dec 2018') AS Result;
Hasil:
+------------+ | Result | |------------| | 2018-12-20 | +------------+
Tentu saja, string harus dalam gaya yang dapat dikonversi ke tipe data yang ditentukan, jika tidak, Anda akan mendapatkan kesalahan:
SELECT CONVERT(date, 'Homer') 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 CONVERT(datetime, '20 Dec 2018') AS Result;
Hasil:
+-------------------------+ | Result | |-------------------------| | 2018-12-20 00:00:00.000 | +-------------------------+
Anda juga dapat menentukan waktu:
SELECT CONVERT(datetime, '2pm 20 Dec 2018') AS Result;
Hasil:
+-------------------------+ | Result | |-------------------------| | 2018-12-20 14:00:00.000 | +-------------------------+
Contoh 3 – Konversi ke Tipe Data datetime2
Dalam contoh ini kita mengonversi ke datetime2 tipe data:
SELECT CONVERT(datetime2, '20 Dec 2018') 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 CONVERT(datetimeoffset, '20 Dec 2018') AS Result;
Hasil:
+------------------------------------+ | Result | |------------------------------------| | 2018-12-20 00:00:00.0000000 +00:00 | +------------------------------------+
Contoh 5 – Konversikan ke Tipe Data waktu tanggal kecil
Dalam contoh ini kita mengonversi ke smalldatetime tipe data:
SELECT CONVERT(smalldatetime, '20 Dec 2018') 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 CONVERT(time, '20 Dec 2018') 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 CONVERT(time, '2pm') 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 CONVERT(time, '2pm 20 Dec 2018') 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 CONVERT(datetime, '2pm') AS Result;
Hasil:
+-------------------------+ | Result | |-------------------------| | 1900-01-01 14:00:00.000 | +-------------------------+
Jika Anda mendapatkan kesalahan saat mencoba mengonversi string menjadi tanggal, coba PARSE()
fungsi sebagai gantinya. Ini akan berfungsi dalam beberapa kasus di mana CONVERT()
tidak.
Anda mungkin juga ingin melihat CAST()
function, yang merupakan cara standar ANSI SQL untuk mengonversi antar tipe data. Berikut Cara Mengonversi String ke Tanggal/Waktu menggunakan CAST()
.